我有一个包含动态数据的列表。即
list[0].id=0;
list[1].id=1;
list[2].id=2;
我想创建一个具有动态属性名称的类 即
for(int i=0;i<list.count;i++)
{
//create dynamic class with dynamic property name
new {id+i=list[i].id} //this statement throws compilation error.
}
这种方法的替代方法是什么?
答案 0 :(得分:1)
在编译时而不是运行时构建Anonymous类时,你无法做到这一点。您需要使用ExpandoObject类
dynamic expando = new ExpandoObject();
var p = expando as IDictionary<String, object>;
for(int i=0;i<list.count;i++)
{
p[id+i] = list[i].id;
}
//do something with the expando object
这是基于Jani在评论中所附的帖子。