Tôi thường cần tăng thêm một đối tượng có thuộc tính chẳng hạn. Cho đến bây giờ (mệt mỏi của nó;) và nó xấu xí quá) Tôi đã làm theo cách này:Làm thế nào để tăng thêm đối tượng kiểu ẩn danh trong C#
var someListOfObjects = ...;
var objectsWithMyProperty = from o in someListOfObjects
select new
{
o.Name, /* Just copying all the attributes I need */
o.Address, /* which may be all of them. */
SomeNewProperty = value
};
Có một cách thông minh để làm điều này? Những gì tôi đã làm trước đây là một cái gì đó như thế này:
var objectsWithMyProperty = from o in someListOfObjects
select new
{
OldObject = o, /* I access all of the old properties from here */
SomeNewProperty = value
};
Tôi đoán điều này có thể được thực hiện với một số phản ánh, nhưng tôi tưởng tượng có một cách tiếp cận nhanh hơn mà làm cho một cái gì đó tương đương với phương pháp cồng kềnh đầu tiên.
Xin cảm ơn, Lasse
Tôi đoán bạn có thể ăn một cây Biểu thức lạ mắt. Nhưng nó có lẽ sẽ không hoạt động cho Linq2SQL và bạn bè. – leppie
Vấn đề với phương pháp thứ hai là gì? –
@Pieter Tôi nghĩ rằng nó là xấu xí và không có ý nghĩa trong bối cảnh tôi sử dụng nó. Fx nếu bạn cung cấp nó như là một nguồn dữ liệu bạn kết thúc với 'Eval (" WhyDoIHaveToHaveANameHere.TheActualProperty ")'. –