使用LINQ在JSON中创建树层次结构

Kev*_*nle 3 c# linq json

我有一个随机顺序的一些名单的平面列表.是否可以编写单个LINQ语句以在JSON中创建树层次结构,以便根据以下示例说明的规则对它们进行分组:

输入:

"Banana", "Apple", "Cheery", "Lemon", "Orange", ...
Run Code Online (Sandbox Code Playgroud)

输出:

{
    "A, B, C": "Apple, Banana, Cherry",
    "D, E, F" : "",
    ...
    "J, L, M": "Lemon",
    "N, O, P": "Orange",
    ...
}
Run Code Online (Sandbox Code Playgroud)

dtb*_*dtb 9

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)));
Run Code Online (Sandbox Code Playgroud)

输出:

{
  "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, [": ""
}