私のウェブサイト用にスレッド化されたコメントシステムを構築していて、問題に遭遇しました...
ID フィールドと親 ID フィールドを持つリスト PULLED FROM A DATABASE があります。親 ID フィールドは null にすることができますが、ID フィールドが null になることはありません。
これはスレッド化されたコメント システムなので、ID が一番上になるようにリストを整理しますが、親 ID が存在する場合は ID の下に挿入されます。そして、これも無限に続くことができます。そのため、2 番目のレベルにも ID があり、その ID の親 ID を持つアイテムをその下に挿入したいと考えています。
例えば:
---1. 何とか
--------2. 何とか何とか-> ParentID=1
----------3. 何とか何とか->親ID = 2
-------------- 4. 何とか何とか ->parentID=3
----------- 3.何とか何とか -> 親 ID=2
--------2. 何とか何とか->親ID = 1
私はあなたがポイントを得ると思います。
だからここに私がこれまで持っているものがあります...
List<comment> finalList = new List<comment>();
for (int i = 0; i < getComments.Count(); i++)
{
string item = getComments[i].parentComment;
getComments[i].threadID = 1;
finalList.Add(getComments[i]);
for (int ii = 0; ii < getComments.Count(); ii++)
{
if (getComments[ii].commentID == item)
{
getComments[ii].threadID = 2;
finalList.Add(getComments[i]);
}
}
}
途中でソートされているように見えますが、実際にはそうではありません... ThreadID はもちろん、どれだけ右に植えられるかです。