Heim >Backend-Entwicklung >C++ >Wie kann LINQ Daten aus einer Sammlung von Enums und Benutzerobjekten effizient für die Rasteranzeige bereitstellen?

Wie kann LINQ Daten aus einer Sammlung von Enums und Benutzerobjekten effizient für die Rasteranzeige bereitstellen?

Susan Sarandon
Susan SarandonOriginal
2025-01-06 00:32:39296Durchsuche

How Can LINQ Efficiently Pivot Data from a Collection of Enums and User Objects for Grid Display?

Pivot-Daten mit LINQ

In Ihrem gegebenen Szenario verfügen Sie über eine Sammlung mit Aufzählungen (TypeCode) und Benutzerobjekten, die Sie für eine Rasteranzeige reduzieren müssen. Um dies zu erreichen, stoßen Sie beim Versuch eines foreach-Ansatzes auf Schwierigkeiten. Glücklicherweise bietet LINQ eine elegantere Lösung.

LINQ Pivot-Implementierung

Mit LINQ können Sie die Daten wie folgt Pivotieren:

// Assuming you have a collection of items
var data = new[]
{
    new { TypeCode = 1, User = "Don Smith" },
    new { TypeCode = 1, User = "Mike Jones" },
    new { TypeCode = 1, User = "James Ray" },
    new { TypeCode = 2, User = "Tom Rizzo" },
    new { TypeCode = 2, User = "Alex Homes" },
    new { TypeCode = 3, User = "Andy Bates" }
};

// Group the data by TypeCode to form columns
var columns = from item in data
             group item by item.TypeCode;

// Get the total number of rows based on the maximum number of items in each column
int rows = columns.Max(c => c.Count());

// Pivot the data into a two-dimensional array for the grid
string[,] grid = new string[rows, columns.Count()];

int rowIndex = 0;
foreach (var column in columns)
{
    foreach (var item in column)
    {
        grid[rowIndex, column.Key - 1] = item.User;
        rowIndex++;
    }
    rowIndex = 0;
}

// Print the pivot table
Console.WriteLine("Pivot Table:");
for (int i = 0; i < rows; i++)
{
    for (int j = 0; j < columns.Count(); j++)
    {
        Console.Write(grid[i, j] + "\t");
    }
    Console.WriteLine();
}

Diese Implementierung gruppiert die Daten nach TypeCode zum Bilden von Spalten, berechnet die Gesamtzahl der Zeilen basierend auf der maximalen Anzahl von Elementen in jeder Spalte und wandelt die Daten in ein zweidimensionales Array um, das für ein Raster geeignet ist Anzeige.

Das obige ist der detaillierte Inhalt vonWie kann LINQ Daten aus einer Sammlung von Enums und Benutzerobjekten effizient für die Rasteranzeige bereitstellen?. 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