Ist es möglich, eine von KeyValuePair in einen anonymen Typ umzuwandeln?Umwandlung einer KeyValuePair-Sammlung in einen anonymen Typ
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
Der Grund Ich mag würde, dies zu tun ist, weil ich ein Objekt aus einem Webservice bin abgerufen werden, um ein Objekt darstellt, die in der WSDL-Datei nicht existiert. Das zurückgegebene Objekt enthält nur eine KeyValuePair-Auflistung, die die benutzerdefinierten Felder und ihre Werte enthält. Diese benutzerdefinierten Felder können beliebig benannt werden. Daher kann ich keine XML-Deserialisierungsmethode dem endgültigen Objekt zuordnen, das ich verwenden möchte (dessen Eigenschaften müssen an ein Raster gebunden sein).
* Nur weil ich Dictionary<string,string>
verwendet habe, bedeutet das nicht, dass es absolut ein Wörterbuch ist, ich habe es nur zur Illustration verwendet. Wirklich ist es ein IEnumerable<KeyValuePair<string,string>>
Ich habe versucht, eine Sache zu tun, dies zu tun, aber zeichne ein Leerzeichen. Das ist C# .NET 4.0.
Sie möchten dynamisches Schreiben, kein anonymer Typ. Also sollten Sie sich die dynamische Funktion von C# 4 ansehen. – CodesInChaos
Du sagst (a) du weißt nicht, dass "first" oder "second" wirklich da sein werden, sie könnten alles sein, aber (b) du willst "anonType.first" und "anonType" codieren können .zweite'? –