Heim > Backend-Entwicklung > C++ > Wie kann LINQ Daten für die Rasteranzeige effizient von einem breiten in ein hohes Format umwandeln?

Wie kann LINQ Daten für die Rasteranzeige effizient von einem breiten in ein hohes Format umwandeln?

Susan Sarandon
Freigeben: 2025-01-05 16:14:41
Original
375 Leute haben es durchsucht

How Can LINQ Efficiently Pivot Data from a Wide to a Tall Format for Grid Display?

Pivotieren von Daten mit LINQ

In der Datenwissenschaft wandelt das Pivotieren Daten von einem Breitformat in ein Hochformat um oder umgekehrt. Angenommen, Sie haben einen Datensatz mit Elementen, die ein Enum- und ein User-Objekt enthalten, und müssen ihn für eine Rasteranzeige reduzieren. Eine einfache Methode beinhaltet verschachtelte foreach-Schleifen, aber dieser Ansatz kann aufgrund der sich ändernden Sammlungsgröße zu Fehlern führen.

Der LINQ-Pivot-Ansatz

LINQ bietet eine sauberere und effizientere Methode zum Pivotieren von Daten:

  1. Gruppieren und Auswählen: Gruppieren Sie die Daten nach dem Enum-Wert und wählen Sie die Benutzernamen für jede Gruppe aus.
var grps = from d in data
           group d by d.Foo
           into grp
           select new
           {
               Foo = grp.Key,
               Bars = grp.Select(d2 => d2.Bar).ToArray()
           };
Nach dem Login kopieren
  1. Zeilenanzahl bestimmen: Berechnen Sie die maximale Anzahl von Zeilen basierend auf der Länge des Bars-Arrays jeder Gruppe.
int rows = grps.Max(grp => grp.Bars.Length);
Nach dem Login kopieren
  1. Ausgabespaltenüberschriften: Drucken die Enum-Werte als Spaltenüberschriften.
foreach (var grp in grps) {
    Console.Write(grp.Foo + "\t");
}
Nach dem Login kopieren
  1. Ausgabedaten: Durchlaufen Sie die Zeilen und geben Sie die entsprechenden Benutzernamen oder Null für fehlende Werte aus.
for (int i = 0; i < rows; i++) {
    foreach (var grp in grps) {
        Console.Write((i < grp.Bars.Length ? grp.Bars[i] : null) + "\t");
    }
    Console.WriteLine();
}
Nach dem Login kopieren

Dieser Code führt die Daten-Pivotierung elegant durch und bietet eine saubere und effiziente Lösung zum Zusammenführen komplexer Datensätze in einem Raster Format.

Das obige ist der detaillierte Inhalt vonWie kann LINQ Daten für die Rasteranzeige effizient von einem breiten in ein hohes Format umwandeln?. 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