C#言語を使用しています。私の問題は、取得した階層的な結果セットをオブジェクトに保存する方法がわからないことです。
ここに私のオブジェクトがあります:
public class CategoryItem
{
public string Name { get; set; }
public int CategoryID { get; set; }
public int ParentID { get; set; }
public List<CategoryItem> SubCategory = new List<CategoryItem>();
public List<CategoryItem> GetSubCategory()
{
return SubCategory;
}
public void AddSubCategory(CategoryItem ci)
{
SubCategory.Add(ci);
}
public void RemoveSubCategory(CategoryItem ci)
{
for (int i = 0; i < SubCategory.Count; i++)
{
if (SubCategory.ElementAt(i).CategoryID == ci.CategoryID)
{
SubCategory.RemoveAt(i);
break;
}
}
}
}
これは、MSSQLサーバーからデータセットを取得するサンプルです
ID PrntID Title
_______ _______
1 0 Node1
2 1 Node2
3 1 Node3
4 2 Node4
5 2 Node5
6 2 Node6
7 3 Node7
8 4 Node8
9 4 Node9
10 9 Node10
簡単に参照できるツリー ビュー
Node 1
-Node 2
--Node 4
---Node 8
---Node 9
----Node 10
--Node 5
--Node 6
-Node 3
--Node 7
私の問題は、この結果を「CategoryItem オブジェクト」に保存する方法です。これに反復を使用する必要があるかどうかはわかりませんか?特に、ノードが 2 レベルの深さの場合。私はそれを次のように保存したい:
List<CategoryItem> items = new List<CategoryItem>();
これにより、「アイテム」オブジェクト内のすべてのオブジェクトを掘り下げることができ、クラスの GetSubCategory() メソッドを使用してそのサブカテゴリ/子/子にアクセスできます。これは可能ですか?