Gunakan LINQ untuk membahagikan koleksi kepada sub-koleksi
Memisahkan koleksi kepada bahagian yang lebih kecil ialah tugas pengaturcaraan biasa. Menggunakan LINQ (Language Integrated Query) anda boleh mencapai ini dengan kaedah sambungan yang mudah.
Bahagikan set kepada N bahagian
kaedah sambungan Split
menerima sebagai input koleksi dan bilangan bahagian yang diingini dan mengembalikan IEnumerable<IEnumerable>
yang mewakili subkoleksi. Algoritma ini membahagikan elemen kepada bahagian berdasarkan baki apabila indeks semasa dibahagikan dengan bilangan bahagian.
Pelaksanaan:
<code class="language-csharp">static class LinqExtensions { public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts) { int i = 0; var splits = from item in list group item by i++ % parts into part select part.AsEnumerable(); return splits; } }</code>
Penggunaan:
KaedahSplit
boleh digunakan pada mana-mana koleksi IEnumerable
. Contohnya, untuk membahagikan senarai nombor kepada 3 bahagian:
<code class="language-csharp">var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var parts = numbers.Split(3);</code>
Ini akan mengembalikan IEnumerable
yang mengandungi 3 IEnumerable
koleksi, setiap satu mengandungi subset senarai asal:
<code>部分1:{ 1, 4, 7 } 部分2:{ 2, 5, 8 } 部分3:{ 3, 6, 9 }</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Koleksi kepada Sub-Koleksi Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!