【发布时间】:2016-07-14 21:28:57
【问题描述】:
我有一个小的层次结构。示例:
实体:
public class MyClass
{
public int ID { get; set; }
public string Name { get; set; }
public int ParentID { get; set; }
}
我的层次结构数据如下所示:
Id = 1 Name = Item1 ParentId = NULL
Id = 2 Name = Item2 ParentId = 1
Id = 3 Name = Item3 ParentId = 2
Id = 4 Name = Item4 ParentId = 2
Id = 5 Name = Item5 ParentId = 3
问题是我需要对其进行排序,子节点必须在其直接父节点之后。下面的示例必须看起来像
Id = 1 Name = Item1 ParentId = NULL
Id = 2 Name = Item2 ParentId = 1
Id = 3 Name = Item3 ParentId = 2
// the elements with parentID = 3
Id = 5 Name = Item5 ParentId = 3
//continue
Id = 4 Name = Item4 ParentId = 2
有什么建议吗?
【问题讨论】:
-
到目前为止你做了什么?发布您的尝试。
-
您确定示例输出正确吗,因为 Id = 4 的项目不在其父项旁边(id = 2)?
-
您可以将您的数据放在
DataTable中并按照本文第一部分中的方式对其进行排序:weblogs.asp.net/stevewellens/… -
在这里回答了类似的问题:stackoverflow.com/questions/17968069/…
-
我猜你的班级应该是
Id而不是ID和int? ParentId而不是int ParentID。还要检查纳斯雷丁的评论。
标签: c#