Auswählen unterschiedlicher Datensätze basierend auf einem einzelnen Feld in LINQ
Beim Arbeiten mit Daten in LINQ kann es erforderlich sein, doppelte Datensätze herauszufiltern , um sicherzustellen, dass nur eindeutige Werte zurückgegeben werden. Anstatt jedoch ganze duplizierte Zeilen zu entfernen, kann es wünschenswert sein, diesen Vorgang basierend auf einem bestimmten Feld oder einer bestimmten Eigenschaft auszuführen.
Einfache eindeutige Abfrage
Die folgende LINQ-Abfrage demonstriert eine grundlegende Möglichkeit, die Distinct()-Methode zu verwenden, um doppelte Zeilen zu entfernen:
var query = (from r in table1 orderby r.Text select r).Distinct();
Diese Abfrage ruft alle Zeilen aus ab Tabelle1 wird nach dem Textfeld sortiert und entfernt dann alle Duplikate aus der resultierenden Menge.
Eindeutig nach spezifischem Feld
Aber was ist, wenn das Ziel darin besteht, nur Zeilen zurückzugeben, in denen a Enthält ein bestimmtes Feld, z. B. Text, eindeutige Werte? Um dies zu erreichen, besteht eine Möglichkeit darin, die GroupBy()-Methode gefolgt von der Select()-Methode zu verwenden:
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
In dieser Abfrage wird die Tabelle1 zunächst nach dem Textfeld gruppiert, wodurch Gruppen für jedes eindeutige Feld erstellt werden Textwert. Anschließend wird für jede Gruppe die Methode FirstOrDefault() verwendet, um die erste Zeile auszuwählen. Das Ergebnis ist eine Sammlung von Zeilen, in denen das Textfeld unterschiedliche Werte enthält.
Das obige ist der detaillierte Inhalt vonWie wähle ich eindeutige Datensätze basierend auf einem bestimmten Feld in LINQ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!