Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Boleh Memudahkan Pemansingan Data untuk Kebolehbacaan Dipertingkatkan?

Bagaimanakah LINQ Boleh Memudahkan Pemansingan Data untuk Kebolehbacaan Dipertingkatkan?

Barbara Streisand
Barbara Streisandasal
2025-01-06 01:50:42219semak imbas

How Can LINQ Simplify Data Pivoting for Enhanced Readability?

Data Pangsi dengan Kesederhanaan LINQ

Mentransformasi data kepada format yang lebih mesra pengguna selalunya diperlukan. Pendekatan biasa ialah berputar, di mana data disusun semula untuk memaparkannya dalam cara seperti grid. Bayangkan mempunyai koleksi item dengan objek Enum dan Pengguna. Untuk menggambarkannya dalam grid, anda perlu meratakannya.

LINQ menyediakan penyelesaian yang elegan untuk senario sedemikian. Mari kita mulakan dengan mengumpulkan data berdasarkan nilai Enum, mencipta lajur dengan berkesan.

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

Seterusnya, tentukan jumlah bilangan baris berdasarkan bilangan maksimum item dalam mana-mana lajur.

int rows = grps.Max(grp => grp.Bars.Length);

Akhir sekali, ulangi lajur dan baris untuk membina output yang diingini.

foreach (var grp in grps) {
    Console.Write(grp.Foo + "\t");
}
Console.WriteLine();
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();
}

Ini Pendekatan berasaskan LINQ menyediakan cara yang ringkas dan cekap untuk memutar data, menjadikannya mudah untuk memaparkannya dengan cara yang lebih teratur dan bermaklumat.

Atas ialah kandungan terperinci Bagaimanakah LINQ Boleh Memudahkan Pemansingan Data untuk Kebolehbacaan Dipertingkatkan?. 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