我有MyObject1
列表:如何填充樹結構?
public class MyObject1
{
public int Id {get; set;}
public int ParentId {get; set;}
}
List<MyObject1> list = new List<MyObject1>();
我需要建立使用MyObject2
樹:
public class MyObject2
{
public int Id {get; set;}
public int ParentId {get; set;}
// Here should be all child objects, that have .ParentId property is
// equal to .Id property of current node
public List<MyObject2> Children = new List<MyObject2>();
}
什麼是做到這一點的最快的方法?也許我應該在建築之前用Id
或ParentId
對我的list
進行排序?
ETA 我嘗試:
MyObject2 root = MyObject2(1, 0); // in constructor id, parentId
foreach (MyObject1 obj1 in list)
{
// Traversing all tree within root (let's say myTree),
//if myTree.ParentId = obj1.Id then:
myTree.Children.Add(new MyObject2(obj1.Id, obj1.ParentId));
}
的問題是,如果什麼也沒有與樹這樣.Id
還沒有任何物體? 這是最好的辦法嗎?
您可能最擅長通過parentID然後在這些桶內編號 – Chris 2013-03-04 20:56:41
您爲什麼要搜索'最快的方式'?你的方式不夠快?你有什麼嘗試? – I4V 2013-03-04 20:57:59
@ I4V爲什麼我應該尋找最慢的方法來做到這一點?我是c#中的一名新成員,這就是爲什麼我問這個問題 – 2013-03-04 21:03:59