将大量键值对转换为C#对象的最佳方法

时间:2014-06-26 18:58:45

标签: c# linq collections mapping

我有一个Web服务,它返回一个包含多个子对象的对象。父对象以及子对象具有大量键值对(keyvaluepair [])。此时我正在使用linq来识别keyvaluepair,然后获取值。

对于较小的集合,这个过程似乎没问题。但是我从服务中收到的对象有超过300个键值对,我正在寻找一种将键值对映射到我的对象的最佳方法。

有没有什么好办法可以帮我这么做呢?

2 个答案:

答案 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));