我有一个基本上形成树的嵌套注释列表。从列表递归创建树
//Non-Relevant properties (Like Body, Creator etc) excluded
internal class Comment
{
public int ID { get; set; }
public int ItemID { get; set; }
public int ParentItemID { get; set; }
public List<Comment> ChildComments { get; set; }
}
首先,我得到的Posts
列表从数据库中,然后我得到的所有Comments where ItemID == Posts[all].id
我想遍历一个平坦的列表,并创建一个嵌套,或树列表。
它是这样的:
如果ParentItemID == 0
,那么我们有一个顶层评论。如果ParentItemID > 0
我们需要将ParentItemID
与评论ID
匹配,并将子注释添加到父注释列表。
我卡在哪里,我只使用过去的递归来导航文件和文件夹。这不允许我通过后续递归实例化一个集合并保留它。
在递归外部实例化列表似乎也很愚蠢,然后在每次我想添加项目时循环遍历所有项目。
我相信这样做有一个很好的可靠模式,我找不到它。
我相信OP有一个平坦的列表,他想将它转换为嵌套模型。 –
@AndreCalil:是的,它的确如此。 – Guffa
这是真的,我会继续打开这个问题,但是可能需要避免在第一个地方创建平面列表。 – Wesley