Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh memecah senarai ke dalam sublists saiz tertentu menggunakan linq dalam c#?

Bagaimanakah saya boleh memecah senarai ke dalam sublists saiz tertentu menggunakan linq dalam c#?

Barbara Streisand
Barbara Streisandasal
2025-02-01 22:46:12874semak imbas

How Can I Split a List into Sublists of a Specific Size Using LINQ in C#?

Gunakan LINQ untuk membahagikan senarai ke dalam senarai

Dalam C#, kita sering menghadapi situasi yang perlu membahagikan senarai ke dalam kepingan kecil atau senarai kanak -kanak. Salah satu cara untuk mencapai matlamat ini adalah untuk mengembangkan LINQ (pertanyaan integrasi bahasa) yang kuat dalam C#.

mari kita pertimbangkan contoh yang anda berikan. Anda mempunyai , dan anda ingin membuat

atau

, supaya setiap senarai yang dihasilkan mengandungi sejumlah item berterusan (contohnya, 3) dalam senarai asal. List<T> List Untuk menyelesaikan masalah ini dengan LINQ, anda boleh menggunakan kod berikut: List<T>[]

Kod ini pertama kumpulan unsur -unsur dalam senarai sumber berdasarkan hasil hasil

. Ini akan mengumpulkan mereka ke dalam blok
<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source, int chunkSize)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / chunkSize)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}</code>
. Kemudian, kami menggunakan pengendali untuk menukar setiap kumpulan ke senarai nilai, dan gunakan pengendali

untuk membuat senarai senarai. chunkSize Sebagai contoh, jika anda mempunyai senarai asal chunkSize, dan Select sebagai 3, maka sub -list yang dihasilkan akan ToList,

,

, , [a, g, e, w, p, s, q, f, x, y, i, m, c] . Saiz senarai yang dihasilkan ditentukan oleh bilangan item dalam senarai asal dan saiz yang ditentukan dalam operasi kumpulan. Secara umum, penyelesaian berasaskan Linq ini menyediakan kaedah yang berkesan. Kod ini telah diubahsuai untuk menerima parameter untuk menjadikannya lebih biasa. chunkSize

Atas ialah kandungan terperinci Bagaimanakah saya boleh memecah senarai ke dalam sublists saiz tertentu menggunakan linq dalam c#?. 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