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
857 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:

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

Penggunaan:

Kaedah

Split boleh digunakan pada mana-mana koleksi IEnumerable. Contohnya, untuk membahagikan senarai nombor kepada 3 bahagian:

var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var parts = numbers.Split(3);
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!

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