Heim >Datenbank >MySQL-Tutorial >Wie lösche ich doppelte Datensätze in LINQ basierend auf einem bestimmten Feld?

Wie lösche ich doppelte Datensätze in LINQ basierend auf einem bestimmten Feld?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-03 06:10:40427Durchsuche

How to Delete Duplicate Records in LINQ Based on a Specific Field?

Löschen von Duplikaten in Linq basierend auf dem Feld einer Tabelle

In Linq bietet der Distinct-Operator eine einfache Möglichkeit, doppelte Datensätze aus einer Tabelle zu entfernen. Standardmäßig werden jedoch die gesamten Datensätze verglichen, nicht nur bestimmte Felder.

Wenn Sie doppelte Datensätze ausschließlich auf der Grundlage eines einzelnen Felds filtern möchten, wie z. B. r.Text in Ihrem Beispiel, ist ein geänderter Ansatz erforderlich .

Die Verwendung der von Ihnen bereitgestellten Abfrage:

var query = (from r in table1
orderby r.Text
select r).distinct();

verhindert Duplikate, basiert jedoch auf dem kombinierten Inhalt aller Felder, nicht nur r.Text.

Um das gewünschte Ergebnis zu erzielen, betrachten Sie die folgende Abfrage:

table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());

Diese Abfrage gruppiert die Tabelle1 nach dem Textfeld mithilfe von GroupBy. Innerhalb jeder Gruppe wählt es das erste Element mit FirstOrDefault() aus. Die resultierende Sammlung enthält Zeilen, in denen das Textfeld eindeutig ist.

Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Datensätze in LINQ basierend auf einem bestimmten Feld?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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