我有一个Web服务,它返回一个包含多个子对象的对象。父对象以及子对象具有大量键值对(keyvaluepair [])。此时我正在使用linq来识别keyvaluepair,然后获取值。
对于较小的集合,这个过程似乎没问题。但是我从服务中收到的对象有超过300个键值对,我正在寻找一种将键值对映射到我的对象的最佳方法。
有没有什么好办法可以帮我这么做呢?
答案 0 :(得分:3)
听起来你应该只是建一本字典:
var dictionary = pairs.ToDictionary(pair => pair.Key, pair => pair.Value);
然后,您可以非常有效地按键查找任何条目。请注意,此要求所有密钥都是不同的。如果某个键可以有多个值,请改用ToLookup
。
答案 1 :(得分:1)
使用jon的初始代码并基于This Question - 如果您已经定义了类,则可以使用序列化程序作弊
var dictionary = pairs.ToDictionary(pair => pair.Key, pair => pair.Value);
var serializer = new JavaScriptSerializer();
var yourObject= serializer.Deserialize<yourObject>(serializer.Serialize(dictionary));