In LINQ wird der eindeutige Operator häufig verwendet, um doppelte Datensätze aus einer Datenquelle zu entfernen. Beim Umgang mit großen Datensätzen kann es jedoch ineffizient werden, wenn Sie die Ergebnisse nur basierend auf einem bestimmten Feld filtern müssen.
Um dieses Problem zu beheben, betrachten Sie die folgende Abfrage:
var query = (from r in table1 orderby r.Text select r).distinct();
Während diese Abfrage die Ergebnisse nach dem Textfeld sortiert, garantiert sie keine eindeutigen Ergebnisse, die ausschließlich auf diesem Feld basieren.
Für wirklich eindeutige Ergebnisse können Sie Folgendes verwenden Ansatz:
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
Diese Abfrage gruppiert die Tabelle nach dem Textfeld und teilt den Datensatz im Wesentlichen in kleinere Gruppen basierend auf eindeutigen Textwerten auf. Anschließend wird nur die erste Zeile aus jeder Gruppe ausgewählt, wodurch effektiv unterschiedliche Datensätze zurückgegeben werden, ohne dass der Aufwand für das Sortieren des gesamten Datensatzes anfällt.
Mit diesem Ansatz können Sie unterschiedliche Werte effizient aus einer Tabelle abrufen, während Sie sich nur darauf konzentrieren das gewünschte Feld.
Das obige ist der detaillierte Inhalt vonWie kann ich in LINQ effizient eindeutige Werte aus einem bestimmten Feld abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!