Rumah >pembangunan bahagian belakang >C++ >Bagaimana dengan cekap memisahkan senarai ke dalam sublists dengan saiz yang sama menggunakan linq?

Bagaimana dengan cekap memisahkan senarai ke dalam sublists dengan saiz yang sama menggunakan linq?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-02-01 22:31:10780semak imbas

How to Efficiently Split a List into Sublists of Equal Size Using LINQ?

Gunakan linq untuk membahagikan senarai ke dalam senarai sub -lists

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!

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