Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von LINQ effizient Elemente aus einer Liste entfernen?

Wie kann ich mithilfe von LINQ effizient Elemente aus einer Liste entfernen?

Mary-Kate Olsen
Freigeben: 2025-01-24 03:41:13
Original
415 Leute haben es durchsucht

How Can I Efficiently Remove Elements from a List Using LINQ?

Verwenden Sie LINQ, um Listenelemente effizient zu entfernen

LINQ ist eine leistungsstarke Datenabfragetechnologie, die bestimmte Elemente in einer Sammlung filtern und auswählen kann. Beim Umgang mit veränderlichen Sammlungen wie List müssen jedoch spätere Änderungen basierend auf Abfrageergebnissen mit Vorsicht gehandhabt werden.

LINQ-Abfrage und Entfernung

Betrachten Sie die folgende LINQ-Abfrage:

<code class="language-csharp">var authors = from x in authorsList
              where x.firstname == "Bob"
              select x;</code>
Nach dem Login kopieren

Diese Abfrage gibt eine Folge von Autorenobjekten mit dem Namen „Autoren“ zurück. Wenn Sie diese Autoren jedoch aus der Autorenliste entfernen möchten, wird die ursprüngliche Sammlung durch die Verwendung von Autoren zum Entfernen nicht direkt aktualisiert.

Lösung zum Entfernen von Abfrageergebnissen

Es gibt zwei Hauptstrategien zum Löschen von Abfrageergebnissen aus der Autorenliste:

  1. Elemente aus der Abfrage ausschließen: Um zu vermeiden, dass sie später entfernt werden müssen, können Sie die Abfrage so ändern, dass unerwünschte Elemente ausgeschlossen werden:
<code class="language-csharp">authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();</code>
Nach dem Login kopieren

Dadurch wird effektiv eine neue gefilterte Liste von Autoren erstellt, die Bob nicht enthält.

  1. Verwenden Sie RemoveAll: Wenn Sie die Abfrage bereits ausgeführt haben und die Ergebnisse aus AuthorsList entfernen müssen, können Sie die RemoveAll-Methode verwenden:
<code class="language-csharp">authorsList.RemoveAll(x => x.FirstName == "Bob");</code>
Nach dem Login kopieren

Diese Methode durchläuft die Autorenliste und entfernt alle Elemente, die mit dem Prädikat übereinstimmen.

Alternative Möglichkeit, mehrere Elemente zu filtern

Wenn Sie mehrere spezifische Elemente basierend auf einem separaten Satz (z. B. HashSet) entfernen müssen:

<code class="language-csharp">var setToRemove = new HashSet<Author>(authors);
authorsList.RemoveAll(x => setToRemove.Contains(x));</code>
Nach dem Login kopieren

Diese Methode entfernt effektiv alle Autoren in setToRemove aus der AuthorsList.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von LINQ effizient Elemente aus einer Liste entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage