Heim >Datenbank >MySQL-Tutorial >Wie kann ich in LINQ effizient eindeutige Werte aus einem bestimmten Feld abrufen?

Wie kann ich in LINQ effizient eindeutige Werte aus einem bestimmten Feld abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-28 21:48:11994Durchsuche

How to Efficiently Get Distinct Values from a Specific Field in LINQ?

Eindeutige Werte in LINQ basierend auf einem Tabellenfeld abrufen

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!

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