Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Pivot Data dengan Cekap daripada Koleksi Enum dan Objek Pengguna untuk Paparan Grid?

Bagaimanakah LINQ Boleh Pivot Data dengan Cekap daripada Koleksi Enum dan Objek Pengguna untuk Paparan Grid?

Susan Sarandon
Susan Sarandonasal
2025-01-06 00:32:39334semak imbas

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

Data Pangsi menggunakan LINQ

Dalam senario yang anda berikan, anda mempunyai koleksi yang mengandungi enum (Kod Jenis) dan objek Pengguna yang perlu anda ratakan untuk paparan grid. Untuk mencapai ini, anda menghadapi kesukaran apabila mencuba pendekatan foreach. Nasib baik, LINQ menawarkan penyelesaian yang lebih elegan.

Pelaksanaan Pivot LINQ

Menggunakan LINQ, anda boleh memutar data seperti berikut:

// 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();
}

Pelaksanaan ini mengumpulkan data mengikut TypeCode untuk membentuk lajur, mengira jumlah baris berdasarkan bilangan maksimum item dalam setiap lajur dan memaksi data ke dalam tatasusunan dua dimensi sesuai untuk paparan grid.

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Pivot Data dengan Cekap daripada Koleksi Enum dan Objek Pengguna untuk Paparan Grid?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn