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
Lepaskan: 2025-02-01 22:31:10
asal
779 orang telah melayarinya

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.
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();
}
Salin selepas log masuk

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:
List<string> originalList = new List<string> { "a", "g", "e", "w", "p", "s", "q", "f", "x", "y", "i", "m", "c" };
Salin selepas log masuk

ResultList akan memasukkan senarai berikut:
List<List<string>> resultList = Split(originalList);
Salin selepas log masuk

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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan