将平面列表转换为关系列表
本文关键字:列表 关系 转换 平面 | 更新日期: 2023-09-27 18:02:23
我在Foo结构体中有一个"flat"数据数组,它有成员parent和child:
struct Foo { string parent, string child }
它们可能有这样的数据:
"parent1", "child1"
"parent1", "child2"
"parent2", "child3"
"parent2", "child4"
我想把它们强制到一个"关系"结构中:
struct Bar { string parent, string[] children }
,并像这样填充:
"parent1"
"child1"
"child2"
"parent2"
"child3"
"child4"
我可以通过循环很好,但希望提高我的linq技能…我相信一定有办法的?Thanks (4.5 framework)
Use GroupBy:
array.GroupBy(f => f.parent)
.Select(g => new Bar { parent = g.Key, children = g.Select(f => f.child).ToArray() })
.ToArray();