Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah LINQ Boleh Mengubah Data dengan Cekap daripada Format Lebar kepada Tinggi untuk Paparan Grid?

Bagaimanakah LINQ Boleh Mengubah Data dengan Cekap daripada Format Lebar kepada Tinggi untuk Paparan Grid?

Susan Sarandon
Lepaskan: 2025-01-05 16:14:41
asal
375 orang telah melayarinya

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

Pivot Data dengan LINQ

Dalam sains data, pivoting mengubah data daripada format lebar kepada format tinggi atau sebaliknya. Katakan anda mempunyai set data dengan item yang mengandungi objek Enum dan Pengguna dan perlu meratakannya untuk paparan grid. Kaedah mudah melibatkan gelung foreach bersarang, tetapi pendekatan ini boleh memperkenalkan ralat disebabkan oleh perubahan saiz koleksi.

Pendekatan Pivot LINQ

LINQ menyediakan cara yang lebih bersih dan cekap untuk memutar data:

  1. Kumpulkan dan Pilih: Kumpulkan data mengikut nilai Enum dan pilih nama pengguna untuk setiap kumpulan.
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()
           };
Salin selepas log masuk
  1. Tentukan Kiraan Baris: Kira nombor maksimum baris berdasarkan panjang Bar setiap kumpulan tatasusunan.
int rows = grps.Max(grp => grp.Bars.Length);
Salin selepas log masuk
  1. Kepala Lajur Output: Cetak nilai Enum sebagai pengepala lajur.
foreach (var grp in grps) {
    Console.Write(grp.Foo + "\t");
}
Salin selepas log masuk
  1. Data Output: Lelaran melalui baris dan cetak nama pengguna yang sepadan atau null untuk nilai yang tiada.
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();
}
Salin selepas log masuk

Kod ini dengan elegan melaksanakan pangsi data, menyediakan penyelesaian yang bersih dan cekap untuk meratakan set data kompleks ke dalam format grid.

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Mengubah Data dengan Cekap daripada Format Lebar kepada Tinggi untuk Paparan Grid?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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