我已经被这个问题困住了几天,希望能得到一些想法或帮助来解决它。我有一个对象集合
public class Hierarchy
{
public Hierarchy(string iD, string name, int level, string parentID, string topParent)
{
ID = iD;
Name = name;
Level = level;
ParentID = parentID;
Children = new HashSet<Hierarchy>();
}
public string ID { get; set; }
public string Name{ get; set; }
public int Level { get; set; }
public string ParentID { get; set; }
public ICollection<Hierarchy> Children { get; set; }
}
从 Linq 查询到我的实体的数据是:
ID Name Level ParentID
295152 name1 1 null
12345 child1 2 295152
54321 child2 2 295152
44444 child1a 3 12345
33333 child1b 3 12345
22222 child2a 3 54321
22221 child2b 3 54321
22002 child2c 3 54321
20001 child2a2 4 22222
20101 child2b2 4 22222
这些数据可以扩展到未知的级别深度(我只显示 4)。最终,我将拥有一个带有多个子对象集合的 Hierarchy 对象,而这些子对象又可能具有多个子对象的集合……等等……总是只有一个顶级对象。
我试图在这个项目中尽可能多地使用 Linq。
这显然需要某种递归方法,但我被卡住了。任何想法或帮助将不胜感激。
TIA