Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Linq dapat memecah senarai dengan cekap ke dalam sublists saiz yang ditentukan?

Bagaimanakah Linq dapat memecah senarai dengan cekap ke dalam sublists saiz yang ditentukan?

Susan Sarandon
Susan Sarandonasal
2025-02-01 22:36:13710semak imbas

How Can LINQ Efficiently Split a List into Sublists of a Specified Size?

Gunakan Senarai Segmentasi Cekap LINQ

Linq menyediakan kaedah pemprosesan data yang mudah dan berkuasa untuk aplikasi .NET, termasuk fungsi membahagikan senarai ke dalam sub -list mengikut pelbagai syarat.

Pertimbangkan isu -isu berikut: Anda mempunyai

, anda perlu membahagikannya ke dalam beberapa sub -senarai objek

, dan saiz setiap senarai kanak -kanak ditentukan oleh indeks. Sebagai contoh, senarai asal mengandungi unsur -unsur berikut: List<T> T

senarai yang anda mahu dapatkan ialah:
<code>[a, g, e, w, p, s, q, f, x, y, i, m, c]</code>

Saiz sub -list boleh ditentukan sebagai parameter fungsi.
<code>[a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]</code>

Penyelesaian menggunakan LINQ adalah seperti berikut:

Kod ini melaksanakan langkah -langkah berikut:
<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source, int sublistSize)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / sublistSize)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}</code>

Menurut kumpulan indeks
    :
  1. kaedah ini dibayar kepada unsur -unsur dalam senarai sumber mengikut indeks elemen, setiap kumpulan mewakili sub -list yang berbeza. Saiz Subline Kawalan Parameter. GroupBy Pilih sub -list sublistSize:
  2. kaedah ini digunakan untuk mengekstrak nilai dalam setiap kumpulan ke dalam senarai baru.
  3. ditukar ke senarai senarai : kemudian gunakan Select untuk menukar kumpulan ke dalam senarai.
  4. Hasilnya ialah , masing -masing mengandungi unsur -unsur yang ditentukan dari senarai asal, dan dibahagikan mengikut indeks projek. Dengan masuk ke parameter , saiz sub -list boleh dikawal secara fleksibel. ToList

Atas ialah kandungan terperinci Bagaimanakah Linq dapat memecah senarai dengan cekap ke dalam sublists saiz yang ditentukan?. 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