首页 > 解决方案 > 在不丢失顺序的情况下转换为 JSON 数组

问题描述

我正在使用以下代码使用 NewtonSoft 合并所有 json 对象。

 var result = input.SelectMany(d => d.Select(kvp => kvp.Value))
                    .Select((value, index) => new {index, value})
                    .ToDictionary(iv => iv.index, iv => iv.value);

但是我想在不丢失顺序的情况下将其更改为 json 数组。使用“toArray”只是将每个单独的 json 对象添加到 json 数组中。如何仅将值添加到 json 数组?

结果的值为 ,

{"0":"a","1":"b","2":"c","3":"d","4":"e"}

我试图让输出按[a,b,c,d,e]顺序排列,而不会像键中那样丢失索引的顺序。

标签: c#json

解决方案


呼叫.ToDictionary()已经失去秩序

在不知道您正在处理的变量的类型的情况下,提供一个全面的答案有点困难,但您可能只想替换.ToDictionary.Select(iv => iv.value.something),然后是.ToArray()。这只会为您提供价值并保持秩序。


推荐阅读