2014-06-25 65 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"; 
相關問題