Rumah >pembangunan bahagian belakang >C++ >Bagaimana dengan cekap memisahkan senarai ke dalam sublists dengan saiz yang sama menggunakan linq?
Dalam pengaturcaraan, ia adalah operasi biasa untuk membahagikan senarai ke dalam sub -list. Dalam C#, kaedah yang cekap adalah menggunakan fungsi LINQ (pertanyaan bersepadu bahasa). Mari kita bincangkan bagaimana untuk membahagikan senarai ke dalam sub -senarai saiz yang sama.
Dengan mengandaikan anda perlu membahagikan senarai objek ke dalam sub -list dengan saiz tiga. Untuk ini, kita boleh menggunakan kod berikut:
Kod ini pertama mengaitkan setiap elemen dalam senarai dengan indeksnya. Seterusnya, ia membayar unsur -unsur berdasarkan hasil indeks dari hasil ketiga -tiga. Kumpulan ini mencipta senarai saiz yang sama. Akhirnya, ia mengekstrak nilai dalam setiap kumpulan ke dalam senarai senarai.
<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source) { return source .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / 3) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); }</code>
Untuk menjelaskan proses ini, marilah kita menganggap bahawa kita mempunyai senarai asal berikut:
Dengan memanggil fungsi perpecahan, setiap kumpulan tiga elemen akan disimpan dalam satu senarai dalam senarai senarai hasil:
<code class="language-csharp">List<string> originalList = new List<string> { "a", "g", "e", "w", "p", "s", "q", "f", "x", "y", "i", "m", "c" };</code>
ResultList akan memasukkan senarai berikut:
<code class="language-csharp">List<List<string>> resultList = Split(originalList);</code>
Menggunakan sintaks LINQ yang mudah dan cekap, kami menunjukkan cara dengan mudah membahagikan senarai ke dalam sub -senarai saiz yang ditentukan. Kaedah ini menyediakan penyelesaian umum untuk pelbagai senario operasi data.
<code>[["a", "g", "e"], ["w", "p", "s"], ["q", "f", "x"], ["y", "i", "m"], ["c"]]</code>
Atas ialah kandungan terperinci Bagaimana dengan cekap memisahkan senarai ke dalam sublists dengan saiz yang sama menggunakan linq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!