Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya Boleh Mengubah Data Menggunakan LINQ?
Data Pangsi Menggunakan LINQ
Dalam pemprosesan data, pangsi merujuk kepada menukar data daripada format dengan berbilang lajur dan baris kepada format dengan berbilang baris dan lajur. Begini cara anda boleh melakukan pangsi data menggunakan LINQ:
Pertimbangkan koleksi item yang mengandungi enum TypeCode dan objek Pengguna. Seperti yang diterangkan oleh pertanyaan, anda ingin meratakan koleksi dan membentangkannya dalam struktur seperti grid, seperti yang ditunjukkan dalam data sampel yang disediakan:
TypeCode | User |
---|---|
1 | Don Smith |
1 | Mike Jones |
1 | James Ray |
2 | Tom Rizzo |
2 | Alex Homes |
3 | Andy Bates |
Output yang dikehendaki ialah:
1 | 2 | 3 |
---|---|---|
Don Smith | Tom Rizzo | Andy Bates |
Mike Jones | Alex Homes | |
James Ray |
Penyelesaian LINQ:
LINQ boleh mengendalikan operasi berputar jenis ini dengan cekap. Berikut ialah coretan kod yang menunjukkan cara:
// Sample data var data = new[] { new { Foo = 1, Bar = "Don Smith"}, new { Foo = 1, Bar = "Mike Jones"}, new { Foo = 1, Bar = "James Ray"}, new { Foo = 2, Bar = "Tom Rizzo"}, new { Foo = 2, Bar = "Alex Homes"}, new { Foo = 3, Bar = "Andy Bates"}, }; // Group into columns and select rows per column 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() }; // Find the total number of (data) rows int rows = grps.Max(grp => grp.Bars.Length); // Output columns foreach (var grp in grps) { Console.Write(grp.Foo + "\t"); } Console.WriteLine(); // Output data 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(); }
Output:
1 2 3
Don Smith Tom Rizzo Andy Bates
Mike Jones Alex Homes
James Ray
Penyelesaian LINQ ini dengan berkesan memutar data ke dalam format yang diingini dengan mengumpulkan item dengan nilai Foo yang sama dan kemudian memilih Bar (nama pengguna) setiap lajur. Ia mengira bilangan maksimum baris berdasarkan entri dalam setiap lajur dan menjana output dalam bentuk jadual yang tersusun dengan baik.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Mengubah Data Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!