Возможно ли преобразование a KeyValuePair в анонимный тип?Преобразование коллекции 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. Возвращаемый объект содержит только коллекцию KeyValuePair, содержащую настраиваемые поля и их значения. Эти настраиваемые поля можно назвать чем угодно, поэтому я не могу на самом деле сопоставить метод десериализации xml с конечным объектом, который я буду использовать (свойства которого должны быть привязаны к сетке).
* Просто потому, что я использовал Dictionary<string,string>
, не означает, что это абсолютно словарь, я просто использовал его для иллюстрации. Действительно его a IEnumerable<KeyValuePair<string,string>>
Ive пытался что-то сделать, но я рисую пробел. Это C# .NET 4.0.
Вы хотите динамическую типизацию, а не анонимный тип. Поэтому вы должны изучить функцию 'dynamic' C# 4. – CodesInChaos
Вы говорите: (а) вы не знаете, что «первая» или «вторая» действительно будет там, они могут быть чем угодно, но (b) вы хотите иметь возможность кодировать «anonType.first» и «anonType» .second'? –