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:
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() };
int rows = grps.Max(grp => grp.Bars.Length);
foreach (var grp in grps) { Console.Write(grp.Foo + "\t"); }
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(); }
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!