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!