У меня есть следующий класс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 и это связано пункт Идентификаторы. В этом сценарии я хочу найти Id элемента item9 и связанные с ним идентификаторы элементов.
Результат должен содержит 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: Я получаю эту модель из базы данных. Вот почему у меня это как плоская модель. –
Если эти данные широко используются, возможно, стоит рассмотреть возможность превращения его в древовидную структуру. Это, по крайней мере, стоит посмотреть. Вот один из примеров, который я нашел с помощью быстрого поиска: [Flat Data to Hierarchical Model] (http://stackoverflow.com/questions/26949442/flat-data-to-hierarchical-model-c-sharp) –