我该如何创建一个新的List<T>
,其中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 中的所有对象都被最后一个指定的对象的值所替换。
DyObj
实例,然后继续两次为同一实例分配值。应该将dynamic DyObj = new ExpandoObject();
这行代码放在 if 块内部,并且您应该最终得到两个该行代码的副本,因为您想要添加两个不同的实例。 - Kirk Woll