是否可以將KeyValuePair的IEnumerable<KeyValuePair<string,string>>
轉換爲匿名類型?將KeyValuePair集合轉換爲匿名類型
Dictionary<string, string> dict= new Dictionary<string, string>();
dict.add("first", "hello");
dict.add("second", "world");
var anonType = new{dict.Keys[0] = dict[0], dict.Keys[1] = dict[1]};
Console.WriteLine(anonType.first);
Console.WriteLine(anonType.second);
********************output*****************
hello
world
我想這樣做的原因是因爲我從檢索表示對象並不在WSDL中存在的web服務的對象。返回的對象只包含一個KeyValuePair集合,其中包含自定義字段及其值。這些自定義字段可以命名爲任何東西,所以我不能真正映射xml反序列化方法到我將要使用的最終對象(其屬性必須綁定到網格)。
*僅僅因爲我使用Dictionary<string,string>
並不意味着它絕對是一本字典,我只是用它來說明。真的是它的一個IEnumerable<KeyValuePair<string,string>>
我一直在嘗試的方式來做到這一點,但我畫了一個空白。這是C#.NET 4.0。
你想要動態類型,而不是匿名類型。所以你應該看看C#4的「動態」功能。 – CodesInChaos 2011-01-13 21:52:25
你說的(a)你不知道「第一」或「第二」真的會在那裏,他們可能是任何東西,但(b)你想能夠編寫`anonType.first`和`anonType .second`? – 2011-01-13 21:53:42