2011-06-17 62 views
0

我有一个包含动态数据的列表。即如何在此场景中创建动态属性

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

您定位的是哪个版本的.net? – marto 2011-06-17 09:02:49

+0

你是否确实意味着这个链接可以解决我的问题,我找不到那样的东西 – Tuscan 2011-06-17 09:03:41

+0

@marto .net 4.0 – Tuscan 2011-06-17 09:04:00

回答

1

你不能在编译时创建匿名类,而不是在运行时编译。您需要使用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在其评论中关联的帖子。