Heim > Backend-Entwicklung > C++ > Wie kann LINQ Daten effizient gruppieren und Vorkommen zählen?

Wie kann LINQ Daten effizient gruppieren und Vorkommen zählen?

Mary-Kate Olsen
Freigeben: 2025-01-22 00:46:10
Original
646 Leute haben es durchsucht

How Can LINQ Group Data and Count Occurrences Efficiently?

Nutzen Sie LINQ, um Daten effizient zu gruppieren und zu zählen

LINQ (Language Integrated Query) in C# bietet eine leistungsstarke Möglichkeit, Daten zu bearbeiten und abzufragen. In Situationen, in denen Sie Datensätze gruppieren und zählen müssen, bietet LINQ eine übersichtliche und effiziente Lösung.

Angenommen, wir haben einen Datensatz mit Benutzern und den zugehörigen Messwerten und Daten:

<code>UserInfo(姓名, 指标, 日期, 其他指标)

数据:
joe  1 2011/01/01 5
jane 0 2011/01/02 9
john 2 2011/01/03 0
jim  3 2011/01/04 1
jean 1 2011/01/05 3
jill 2 2011/01/06 5
jeb  0 2011/01/07 3
jenn 0 2011/01/08 7</code>
Nach dem Login kopieren

Unser Ziel ist es, eine Tabelle zu erhalten, die nach der Reihenfolge der Indikatoren (0, 1, 2, 3...) gruppiert ist und die Gesamtzahl der Vorkommen jedes Indikators anzeigt.

Gruppieren und Zählen mit LINQ

Um dies mit LINQ zu erreichen, können wir die Methoden „GroupBy“ und „Select“ verwenden:

<code>foreach(var line in data.GroupBy(info => info.metric)
                        .Select(group => new { 
                             Metric = group.Key, 
                             Count = group.Count() 
                        })
                        .OrderBy(x => x.Metric))
{
     Console.WriteLine("{0} {1}", line.Metric, line.Count);
}</code>
Nach dem Login kopieren

Anleitung:

  1. Die Methode „GroupBy“ wird auf den Datensatz angewendet und gruppiert nach dem Attribut „Metrik“. Dadurch wird eine Folge von Gruppen erstellt, wobei jede Gruppe Elemente mit demselben „Metrik“-Wert enthält.
  2. Mit der Methode „Select“ wird jede Gruppe in ein neues anonymes Objekt mit zwei Eigenschaften projiziert: „Metric“ (der Schlüssel der Gruppe) und „Count“ (die Anzahl der Elemente in der Gruppe).
  3. Die Methode „OrderBy“ sortiert anonyme Objekte in aufsteigender Reihenfolge, sortiert nach „Metrik“.
  4. Das Ergebnis ist eine Folge anonymer Objekte, wobei jedes Objekt eine Metrik und deren Anzahl darstellt.

Ausgabe:

<code>0 3
1 2
2 2
3 1</code>
Nach dem Login kopieren

Anders

Obwohl die bereitgestellte LINQ-Lösung effizient ist, könnte sie noch weiter vereinfacht werden:

<code>var result = data.GroupBy(info => info.metric)
                 .Select(group => new { 
                      Metric = group.Key, 
                      Count = group.Count() 
                 })
                 .OrderBy(x => x.Metric);</code>
Nach dem Login kopieren

Der einzige Unterschied besteht darin, dass wir die Ergebnisse nicht mit einer „foreach“-Schleife durchlaufen, sondern einer Variablen namens „result“ zuweisen.

Wichtige Punkte

  • GroupBy() erstellt eine Folge von Gruppen.
  • Select() Projiziert eine Gruppe auf ein anonymes Objekt.
  • Count() gibt die Anzahl der Elemente in der Gruppe zurück.
  • OrderBy() sortiert die Ergebnisse nach dem angegebenen Attribut.

Das obige ist der detaillierte Inhalt vonWie kann LINQ Daten effizient gruppieren und Vorkommen zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage