![](/img/trans.png)
[英]How to serialize IEnumerable of Anonymous Type in C# to JavaScript Object?
[英]How to augment anonymous type object in 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
};
有一個聰明的方法來做到這一點? 我以前做的是這樣的:
var objectsWithMyProperty = from o in someListOfObjects
select new
{
OldObject = o, /* I access all of the old properties from here */
SomeNewProperty = value
};
我想這可以用一些反思來完成,但我想有一種更快的方法可以使某些東西等同於第一種繁瑣的方法。
謝謝,Lasse
不支持將新屬性附加到現有匿名類型。 匿名類型表達式只能用於創建具有指定屬性的全新匿名類型。 附加新屬性的兩個最佳替代方案是問題中列出的方法。
我認為您正在尋找的是像C#4.0中添加的ExpandoObject以及動態類型
http://msdn.microsoft.com/en-us/magazine/ff796227.aspx
在內部,它使用字典,因此您可以動態添加/刪除成員。 您第一次嘗試訪問以下屬性時:
obj.NewProperty = newValue
ExpandoObject會自動將其添加到其內部字典中。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.