Я создаю систему многопоточных комментариев для своего веб-сайта, и я столкнулся с проблемой ...
У меня есть список, извлеченный из базы данных, в котором есть поле идентификатора и поле родительского идентификатора. Поле родительского идентификатора может быть пустым, но поле идентификатора никогда не будет нулевым.
Так как это будет многопоточная система комментариев, я организую список, где идентификатор является верхним, но если родительский идентификатор существует, он будет вставлен под идентификатором. Тогда это может продолжаться бесконечно. Поэтому второй уровень теперь также имеет идентификатор, и я хочу вставить любой элемент с родительским идентификатором этого идентификатора.
Например:
--- 1. Л
-------- 2. Бла-бла -> ParentID = 1
----------- 3. Бла-бла -> parentID = 2
-------------- 4. Бла-бла -> parentID = 3
----------- 3.Blah Blah -> parentID = 2
-------- 2. Бла-бла -> parentID = 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 - это, конечно, насколько далеко он направлен вправо.