相關的項目我有下面的類C#如何找到特定項目,並將其從名單
public class Item
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Content { get; set; }
public bool IsLastItem { get; set; }
}
讓說,我有以下的模型,我想找到標識特定項目和它的相關項目的ID。在這種情況下,我想查找item9的Id,它是相關的項目ID。
結果應該包含9,10,11,12,13,14
我從數據庫中獲得我的模型的列表,我模擬它的代碼塊這樣
var items = new List<Item>
{
new Item
{
Id = 1,
ParentId = 0,
Content = "item1",
IsLastItem = false
},
new Item
{
Id = 2,
ParentId = 1,
Content = "item2",
IsLastItem = false
},
new Item
{
Id = 3,
ParentId = 1,
Content = "item3",
IsLastItem = true
},
new Item
{
Id = 4,
ParentId = 1,
Content = "item4",
IsLastItem = true
},
new Item
{
Id = 5,
ParentId = 2,
Content = "item5",
IsLastItem = false
},
new Item
{
Id = 6,
ParentId = 5,
Content = "item6",
IsLastItem = false
},
new Item
{
Id = 7,
ParentId = 5,
Content = "item7",
IsLastItem = false
},
new Item
{
Id = 8,
ParentId = 6,
Content = "item8",
IsLastItem = true
},
new Item
{
Id = 9,
ParentId = 7,
Content = "item9",
IsLastItem = false
},
new Item
{
Id = 10,
ParentId = 9,
Content = "item10",
IsLastItem = true
},
new Item
{
Id = 11,
ParentId = 9,
Content = "item11",
IsLastItem = false
},
new Item
{
Id = 12,
ParentId = 11,
Content = "item12",
IsLastItem = true
},
new Item
{
Id = 13,
ParentId = 11,
Content = "item13",
IsLastItem = true
},
new Item
{
Id = 14,
ParentId = 11,
Content = "item14",
IsLastItem = true
}
};
如果你想使用你的數據就像一個樹結構然後爲什麼不實際使用樹結構而不是列表? –
@BlakeThingstad:我從數據庫中獲得該模型。這就是爲什麼我把它作爲一個平面模型。 –
如果這些數據被廣泛使用,可能需要考慮將其轉換爲樹結構。這至少值得研究。以下是我通過快速搜索找到的一個示例:[平面數據到分層模型](http://stackoverflow.com/questions/26949442/flat-data-to-hierarchical-model-c-sharp) –