2014-06-25 40 views
2

基本上我想转换来自:如何键值对的列表转换为动态对象

keys[3] = {"id", "name", "comment"} 
values[3] = {"1", "Ackerman", "superuser"} 

到:

new { id: "1", name: "Ackerman", comment: "superuser"} 

我怎样才能做到这一点?

+1

这是不是“动态对象”;这是一个“匿名类型”。你的意思是? –

+0

@MarcGravell其实或者很好。我只是不想,也不能事先明确定义类,因为列表是动态创建的。 – hurtchin

+0

k;现在 - 这里有什么“键”和“值”?因为它不明显。这是无效的C#语法...他们是数组吗?如果是这样,什么:'string [] [] keys'和'object [] [] values'? –

回答

2

我想笏你想要的是在Expando对象,它允许添加dinamically属性:

keys[3] = {"id", "name", "comment"} 
values[3] = {1, "Ackerman", "superuser"} 

dynamic item = new ExpandoObject(); 
var dItem = item as IDictionary<String, object>; 

for(int buc = 0; buc < keys.Length; buc++) 
    dItem.Add(keys[buc], values[buc]); 

之后,你可以打电话给你的对象,你会与任何其他事情:

var id = item.id; 
var comment = item.comment; 
item.name = "new name"; 
相关问题