C# Linq链群

C# Linq链群,c#,linq,group-by,C#,Linq,Group By,这是我的收藏 var list1 = new List<string> { "aa", "bb", "cc", "dd", "ee" } .Select(x => new Pair { PropName = x, TypeName = x + "Prop1" }) .ToList(); var list2 = new List<string> { "aa", "bb2", "cc", "dd",

这是我的收藏

var list1 = new List<string> { "aa", "bb", "cc", "dd", "ee" }
                  .Select(x => new Pair { PropName = x, TypeName = x + "Prop1" })
                  .ToList();
var list2 = new List<string> { "aa", "bb2", "cc", "dd", "ee" }
                  .Select(x => new Pair { PropName = x, TypeName = x + "Prop2" })
                  .ToList();
var list3 = new List<string> { "aa", "bb", "cc", "dd" }
                  .Select(x => new Pair { PropName = x, TypeName = x + "Prop3" })
                  .ToList();
var list4 = new List<string> { "aa" }
                  .Select(x => new Pair { PropName = x, TypeName = x + "Prop4" })
                  .ToList();
var list5 = new List<string> { "aa", "bb", "bb5", "cc5" }
                  .Select(x => new Pair { PropName = x, TypeName = x + "Prop5" })
                  .ToList();
var collection = new List<List<Pair>> { list1, list2, list3, list4, list5 };
var list1=新列表{“aa”、“bb”、“cc”、“dd”、“ee”}
.选择(x=>新对{PropName=x,TypeName=x+“Prop1”})
.ToList();
var list2=新列表{“aa”、“bb2”、“cc”、“dd”、“ee”}
.选择(x=>新对{PropName=x,TypeName=x+“Prop2”})
.ToList();
var list3=新列表{“aa”、“bb”、“cc”、“dd”}
.选择(x=>新对{PropName=x,TypeName=x+“Prop3”})
.ToList();
var list4=新列表{“aa”}
.选择(x=>新对{PropName=x,TypeName=x+“Prop4”})
.ToList();
var list5=新列表{“aa”、“bb”、“bb5”、“cc5”}
.选择(x=>新对{PropName=x,TypeName=x+“Prop5”})
.ToList();
var collection=新列表{list1,list2,list3,list4,list5};
它代表一些等级(即“aa”是“bb”的父亲) 我想用“配对”对象制作类似树的东西。它的结构应该和图片上的一样。但是有成对的对象。我不知道该怎么做


这幅画代表的是一个图形,而不是一棵树。树没有周期。那么你的问题是什么?你想做什么不起作用?是的,对不起。那是一张愚蠢的照片。我改了。最后,我将允许获得这个层次结构,但在圆中有成对的对象。我不知道该怎么做。分组,加入?任何建议,请链接。您描述的结构显然不是一个
列表
,事实上,它不是任何类型的
IEnumerable
(除非您想特别聪明,说一个图可以通过DFS/BFS/等枚举)。我会从头开始,从头开始构建一个图形结构。您的Pair对象不包含对其他Pair对象的任何引用。您将如何构建层次结构?