使用LINQ在JSON中创建树层次结构 [英] Create tree hierarchy in JSON with LINQ
本文介绍了使用LINQ在JSON中创建树层次结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一些随机排列的简单名称列表.是否可以编写单个LINQ语句以JSON创建树层次结构,以便根据以下示例所示的规则对它们进行分组:
I have a flat list of some names in a random order. Is it possible to write a single LINQ statement to create a tree hierarchy in JSON so that they would be grouped according to the rules illustrated by the example below:
输入:
"Banana", "Apple", "Cheery", "Lemon", "Orange", ...
输出:
{
"A, B, C": "Apple, Banana, Cherry",
"D, E, F" : "",
...
"J, L, M": "Lemon",
"N, O, P": "Orange",
...
}
推荐答案
var list = new[] { "Banana", "Apple", "Cheery", "Lemon", "Orange" };
var js = new JObject(from y in Enumerable.Range(0, 9)
join x in list
on y equals (x[0] - 'A') / 3
into g
let k = string.Join(", ", from i in Enumerable.Range(0, 3)
select (char)(3 * y + i + 'A'))
let v = string.Join(", ", from s in g orderby s select s)
select new JProperty(k, new JValue(v)));
输出:
{
"A, B, C": "Apple, Banana, Cheery",
"D, E, F": "",
"G, H, I": "",
"J, K, L": "Lemon",
"M, N, O": "Orange",
"P, Q, R": "",
"S, T, U": "",
"V, W, X": "",
"Y, Z, [": ""
}
这篇关于使用LINQ在JSON中创建树层次结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文