linq entfernen eines Elements aus der object-array, wo die Eigenschaft ist gleich dem Wert
Wenn ich
IEnumberable<Car> list
und ich will Sie zum entfernen eines Elements aus der Liste basierend auf einer Eigenschaft des Autos
ich will etwas wie:
list.RemoveWhere(r=>r.Year > 2000)
macht soetwas existieren ?
ich mache das über und über, so dass ich vermeiden will, kopiert die Liste jedes mal zu entfernen Sie einfach ein Element
Ist es ein
List<Car>
oder einfach nur ein IEnumerable<Car>
?InformationsquelleAutor leora | 2010-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
IEnumberable
ist unveränderlich, aber Sie können etwas wie dies:oder schreiben Sie eine extension-Methode:
IEnumerable ist unveränderlich, so kann man nicht einfach hinzufügen oder entfernen von Elementen, ist es unmöglich. Natürlich können Sie einfach eine Liste verwenden, aber es ist nicht möglich zu sagen, ob das schneller gehen würde. Wenn Sie dies tun, immer und immer, halten Sie die verzögerte Ausführung im Hinterkopf.
InformationsquelleAutor sloth
Sehr spät, um der Partei, aber für eine würde, kommt über dieses problem, hier ist eine saubere Lösung:
InformationsquelleAutor TheSoul
Wenn Sie mit
IEnumerable<T>
, wie etwa Wo?Wenn Sie mit
ICollection<T>
und Sie nicht einfach nur eine gefilterte Ergebnis aber wirklich wollen, um Sie zu manipulieren der source-Sammlung, erstellen Sie eine eigene maßgeschneiderte Erweiterung für die Sammlung:Siehe meine aktualisierte Antwort 😉
InformationsquelleAutor Florian Reischl