C# Json.Net反序列化到JObject或Dictionary是否更快?

C# Json.Net反序列化到JObject或Dictionary是否更快?,c#,performance,json.net,C#,Performance,Json.net,我试图为一个Json建模以进行反序列化,其中一个属性是一个具有一长串键和值的对象 { "key1": "value1", "key2": "value2", //this guy "longlist": { "6060": 123, "6061": 664, ... "6200": 43 } } 在我的应用程序中,我不需要查看longlist,我只希望能够将一个longlist附加到另一个 考虑到反序列化

我试图为一个Json建模以进行反序列化,其中一个属性是一个具有一长串键和值的对象

{
    "key1": "value1",
    "key2": "value2",

    //this guy
    "longlist": {
        "6060": 123,
        "6061": 664,
...
        "6200": 43
    }
}
在我的应用程序中,我不需要查看
longlist
,我只希望能够将一个
longlist
附加到另一个

考虑到反序列化的性能,将
长列表
建模为
字典
还是作为
作业对象

编辑:长列表中键的顺序无关紧要。

公共类RootObject
public class RootObject
{
    public string key1 { get; set; }
    public string key2 { get; set; }
    public Dictionary<string, int> longlist { get; set; }
}
{ 公共字符串key1{get;set;} 公共字符串key2{get;set;} 公共字典长列表{get;set;} }
JObject jsonResponse=JObject.Parse(r)

JObject-objResponse=(JObject)jsonResponse[“longlist”];
RootObject _Data=Newtonsoft.Json.JsonConvert.DeserializeObject(jsonResponse.ToString());
foreach(KeyValuePair kvp in_Data.longlist)
{
WriteLine(string.Format(“Key:{0}值:{1}”,kvp.Key,kvp.Value));
}

fiddle:

我不会担心性能,直到诚实成为应用程序中的一个问题。如果您真的有兴趣了解这两种方法,您可以自己确定时间。这可能取决于数据,所以自己测试会给你最好的答案。Eric Lippert的相关建议:我不知道哪一个会更快,你只需要自己测量。然而,
Dictionary
将具有更小的内存占用,因为
int
值不会被装箱,并且因为它只是单键(按名称)而不是双键()。实际上,我更感兴趣的是为什么一个模型可能比另一个模型(如@dbc的答案)性能更好,并以这种方式学习一些东西。另外,如果有人已经知道一种方法肯定是更好的方法,那么我为什么要花时间来衡量这两种方法呢?反序列化到JObject或Dictionary中,这不是更多的时间消耗。
JObject objResponse = (JObject)jsonResponse["longlist"];
RootObject _Data = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(jsonResponse.ToString());

foreach (KeyValuePair<string, int> kvp in _Data.longlist)
{
    Console.WriteLine(string.Format("Key: {0} Value: {1}", kvp.Key, kvp.Value));
}