如何創建一個新的List<T>
,其中牛逼是動態類型的對象。如何創建一個列表與動態對象類型
我
dynamic DyObj = new ExpandoObject();
if (condition1)
{
DyObj.Required = true;
DyObj.Message = "This is the first property being accessed through dynamic object";
}
if (condition2)
{
DyObj.Required = false;
DyObj.Message = "This is the second property....";
}
// and so on...
我想創建List<Dyobj>
和分配基於條件的所有消息Dyobj
。
從評論跟進數據:
var DyObjectsList = new List<dynamic>;
dynamic DyObj = new ExpandoObject();
if (condition1) {
DyObj.Required = true;
DyObj.Message = "Message 1";
DyObjectsList.Add(DyObj);
}
if (condition2) {
DyObj.Required = false;
DyObj.Message = "Message 2";
DyObjectsList.Add(DyObj);
}
有趣的是在DyObjectsList所有的對象都與最後分配的對象的值替換。
@Krik謝謝。這是我做的。 var DyObjectsList =新列表;動態DyObj = new ExpandoObject(); if(condition1){DyObj.Required = true; DyObj.Message =「Message 1」; DyObjectsList .Add(DyObj); } if(condition2){DyObj.Required = false; DyObj.Message =「Message 2」; DyObjectsList .Add(DyObj); }有趣的是,DyObjectsList中的所有對象都被替換爲最後分配的對象的值。 –
BumbleBee
@BumbleBee,這是因爲你正在覆蓋你的對象的值。你實例化你的DyObj的一個**實例,並繼續爲同一個實例賦值兩次。你應該在你的if塊中移動'dynamic DyObj = new ExpandoObject();'這個行,並且你最終應該得到這行的兩個副本,因爲你想添加兩個單獨的實例。 –