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
Lepaskan: 2025-01-06 00:32:39
asal
336 orang telah melayarinya

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();
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan