Verwenden Sie die GroupBy- und Count-Methoden von LINQ, um die Anzahl der Indikatorvorkommen zu zählen
LINQ bietet leistungsstarke Gruppierungs- und Zählfunktionen, um komplexe Datenanalysen zu vereinfachen. Um das Vorkommen jedes Indikators im Datensatz zu zählen, können Sie eine Kombination der Methoden GroupBy und Count verwenden.
Angenommen, es liegt ein Beispieldatensatz mit Benutzerdaten vor, können wir die Daten nach Indikatoren gruppieren und die Anzahl der Vorkommen jedes Indikators wie folgt zählen:
<code class="language-csharp">var result = UserInfo.GroupBy(i => i.metric).Select(g => new { metric = g.Key, count = g.Count() });</code>
Dieser LINQ-Ausdruck gruppiert den Datensatz basierend auf dem Attribut metric
in eine Reihe von Gruppen. Jede Gruppe enthält Benutzerinformationen mit demselben metric
-Wert. Der Ausdruck zählt dann die Anzahl der Vorkommen jeder Gruppe mithilfe der Methode Count()
.
Die generierte result
-Variable enthält eine Reihe anonymer Typinstanzen, die jeweils einen Indikator und seine Anzahl darstellen. Um die Daten in einem standardisierten Format abzurufen, können wir eine Schleife verwenden:
<code class="language-csharp">foreach (var line in result) { Console.WriteLine("{0} {1}", line.metric, line.count); }</code>
Diese Schleife durchläuft result
jede Gruppe in der Sammlung und gibt die Metriken und Zählungen an die Konsole aus. Die Ausgabe lautet wie folgt:
<code>0 3 1 2 2 2 3 1</code>
Alternativ können Sie die folgende Syntax verwenden:
<code class="language-csharp">var result = data.GroupBy(x => x.metric).Select(group => new { Metric = group.Key, Count = group.Count() }).OrderBy(x => x.Metric);</code>
Dieser Ausdruck fügt eine OrderBy
-Klausel hinzu, die die Ergebnisse in aufsteigender Reihenfolge basierend auf dem Metrikwert sortiert.
Das obige ist der detaillierte Inhalt vonWie können die GroupBy- und Count-Methoden von LINQ zum Zählen von Metrikvorkommen verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!