Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membahagikan Senarai dengan Cekap kepada Subsenarai yang Lebih Kecil daripada Saiz Yang Ditentukan?
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>
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>
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>
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!