删除特定的节点我有下面的类C#如何从列表
public class Item
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Content { get; set; }
public bool IsLastItem { get; set; }
}
让说,我有以下的模型,我想删除哪IsLastItem = false
并没有子项。在这种情况下,item4和item7应该从列表中删除。
我从我的数据库模型的列表,我模拟它的代码块这样
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 = false
},
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 = 8,
Content = "item9",
IsLastItem = true
}
};
你想通过ID或所有节点没有孩子?如果你想删除没有孩子的所有节点,为什么你不要删除节点9呢? – osanger
'var enumerable = items.Where(s =>!s.IsLastItem && items.All(t => t.ParentId!= s.Id))。ToList();'??? – Aybe
@MichałZych:用户可以创建一个模型,其item4不是最后一项,但我必须清除这些节点。 –