日期:2014-05-20  浏览次数:21068 次

linq,树结构,根据Id,如何获取当前id及其所有子id
结构如下:

public class Comment
{
   public int Id {get;set;}
   public int ParentId {get;set;}
   public int Text {get;set;}
}


Example:

1
-2
--3
-4
-5
--6
2
3
如果 ID == 1 获取 1,2,3,4,5,6.

------解决方案--------------------
用递归,参考:
http://blog.csdn.net/q107770540/article/details/7708418

linq2Object 是一个道理
------解决方案--------------------
IEnumerable<Comment> GetChild(int id)
{
    return table.Where(x => x.ParentID == id).Union(table.Where(x => x.ParentID == id).SelectMany(y => GetChild(y)));
}