Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Membahagikan Senarai dengan Cekap kepada Subsenarai yang Lebih Kecil daripada Saiz Yang Ditentukan?

Bagaimana untuk Membahagikan Senarai dengan Cekap kepada Subsenarai yang Lebih Kecil daripada Saiz Yang Ditentukan?

DDD
Lepaskan: 2025-01-18 04:26:08
asal
482 orang telah melayarinya

How to Efficiently Split a List into Smaller Sublists of a Defined Size?

Pisah senarai kepada subsenarai saiz yang ditentukan

Artikel ini memperkenalkan cara membahagikan senarai kepada subsenarai saiz yang ditentukan dan menyediakan dua kaedah yang cekap.

Kaedah 1: Gunakan kaedah sambungan

Kod berikut menunjukkan cara melaksanakan pemisahan senarai melalui kaedah sambungan:

<code class="language-csharp">public static class ListExtensions
{
    public static List<List<T>> ChunkBy<T>(this List<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>
Salin selepas log masuk

Penggunaan: Panggil terus kaedah ChunkBy senarai, masukkan saiz blok yang diperlukan sebagai parameter. Sebagai contoh, bahagikan senarai 18 elemen kepada ketulan 5 elemen:

<code class="language-csharp">List<List<int>> chunks = myList.ChunkBy(5);</code>
Salin selepas log masuk

Hasilnya ialah senarai empat subsenarai, setiap satu mengandungi lima elemen.

Kaedah 2: Gunakan gelung

Cara lain ialah menggunakan gelung mudah:

<code class="language-csharp">public static List<List<T>> SplitList<T>(List<T> list, int chunkSize)
{
    List<List<T>> chunks = new List<List<T>>();

    while (list.Count > 0)
    {
        List<T> chunk = new List<T>(chunkSize);
        for (int i = 0; i < chunkSize && list.Count > 0; i++)
        {
            chunk.Add(list[0]);
            list.RemoveAt(0);
        }
        chunks.Add(chunk);
    }

    return chunks;
}</code>
Salin selepas log masuk

Kaedah ini menerima senarai dan saiz ketulan yang diingini sebagai argumen, mencipta senarai senarai baharu dan beralih ke senarai input, menambah chunkSize elemen pada setiap subsenarai baharu sehingga senarai input kosong.

Kedua-dua kaedah boleh membahagikan senarai dengan berkesan kepada subsenarai saiz yang ditentukan. Pilih kaedah yang paling sesuai dengan keperluan khusus anda dan gaya pengekodan.

Atas ialah kandungan terperinci Bagaimana untuk Membahagikan Senarai dengan Cekap kepada Subsenarai yang Lebih Kecil daripada Saiz Yang Ditentukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan