Ich habe die folgende KlasseC# Wie bestimmte Knoten aus der Liste entfernen
public class Item
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Content { get; set; }
public bool IsLastItem { get; set; }
}
Lassen Sie sagen, ich das folgende Modell haben und ich möchte Elemente entfernen, die IsLastItem = false
und nicht Kind haben. In diesem Szenario sollten item4 und item7 aus der Liste entfernt werden.
erhalte ich die Liste meines Modells aus der Datenbank und ich simulierte es in dem Codeblock wie diese
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
}
};
Möchten Sie sie durch ID oder alle Knoten ohne Kind entfernen? Wenn Sie alle Knoten ohne Kind entfernen möchten, warum entfernen Sie nicht auch Knoten 9? – osanger
'var enumerable = items.Where (s =>! S.IsLastItem && items.All (t => t.ParentId! = S.Id)). ToList();' ??? – Aybe
@ MichałZych: Benutzer können ein Modell erstellen, das item4 ist nicht das letzte Element, aber ich muss diese Knoten löschen. –