ツリー構造で表現できるように、それ自体のリストを持つ1つのクラスがあります。
これらのクラスのフラット リストをプルしており、フラット化を解除したいと考えています。
public class Group
{
public int ID {get;set;}
public int? ParentID {get;set;}
public List<Group> Children {get;set;}
}
次のことができるようになりたい
List<Group> flatList = GetFlatList() //I CAN ALREADY DO THIS
List<Group> tree = BuildTree(flatList);
親グループの ID プロパティに関連する ParentID (明らかでない場合)。
編集
単一のオブジェクトではなくリストを返す理由については、いくつかの混乱があります。
項目のリストを持つ UI 要素を作成しています。それぞれに子があります。したがって、最初のリストにはルート ノードがありません。これまでのところ、すべてのソリューションが機能していないようです。
これが意味することは、基本的に Group クラスを使用したツリー型構造のリストが必要だということです。