2008-09-25 11 views
5

Ich habe eine LinkedList, wo Entry ein Mitglied namens ID hat. Ich möchte den Eintrag aus der Liste entfernen, in der id mit einem Suchwert übereinstimmt. Was ist der beste Weg, dies zu tun? Ich möchte nicht Remove() verwenden, da Entry.Equals andere Mitglieder vergleicht und ich nur auf ID abgleichen möchte. Ich hoffe, etwas wie folgt zu tun:Wie entferne ich ein Element, das einem bestimmten Kriterium entspricht, aus einer LinkedList in C#?

entries.RemoveWhereTrue(e => e.id == searchId); 

bearbeiten: Kann jemand diese Frage für mich wieder öffnen? Es ist kein Duplikat - die Frage, die es ein Duplikat von ist, ist über die List-Klasse. List.RemoveAll funktioniert nicht - das ist Teil der List-Klasse.

+0

auf eine doppelte Frage eine Antwort Hier ist Slavo

Antwort

3
list.Remove(list.First(e => e.id == searchId)); 
+1

Siehe meine Antwort - die RemoveAll-Methode akzeptiert tatsächlich ein Prädikat als Parameter. – Slavo

+0

Außer es gibt keine RemoveAll-Methode für eine LinkedList . –

+1

Diese Frage bezieht sich auf eine LinkedList, die über keine RemoveAll-Methode verfügt. –

1

Verwenden Sie einfach die Where-Erweiterungsmethode. Sie erhalten eine neue Liste (IIRC).

2

Hier ist eine einfache Lösung:

list.Remove(list.First((node) => node.id == searchId)); 
+0

Bekommt meine Stimme, da ich nicht für mich selbst abstimmen kann :) –

Verwandte Themen