Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Membahagikan Koleksi kepada Sub-Koleksi Menggunakan LINQ?

Bagaimanakah Saya Boleh Membahagikan Koleksi kepada Sub-Koleksi Menggunakan LINQ?

Linda Hamilton
Lepaskan: 2025-01-20 04:01:09
asal
818 orang telah melayarinya

How Can I Split a Collection into Sub-Collections Using LINQ?

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

Penggunaan:

Kaedah

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

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

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!

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