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

Bagaimanakah Saya Boleh Membahagikan Koleksi kepada Berbilang Bahagian Menggunakan LINQ?

DDD
Lepaskan: 2025-01-20 03:41:09
asal
647 orang telah melayarinya

How Can I Split a Collection into Multiple Parts Using LINQ?

Pisah koleksi kepada bahagian menggunakan LINQ

Artikel ini meneroka masalah biasa dalam analisis dan pengaturcaraan data: membahagikan set kepada n subset yang berbeza.

Penyelesaian LINQ:

LINQ menyediakan penyelesaian yang ringkas dan elegan untuk tugasan ini. Kaedah sambungan berikut Split<T> mencapai hasil yang diharapkan:

<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

Arahan:

    Kaedah
  • Split<T> menerima dua parameter: koleksi input (list) dan bilangan bahagian untuk membahagikannya kepada (parts).
  • Ia memulakan pembilang i kepada sifar, yang akan digunakan sebagai indeks elemen terkumpul.
  • Kaedah ini menggunakan sintaks group by untuk mencipta kumpulan berdasarkan modulo i dan parts. Ini memastikan elemen diperuntukkan kepada bahagian yang berbeza berdasarkan kedudukannya dalam koleksi asal.
  • Akhir sekali, hasilnya diunjurkan untuk menghasilkan koleksi IEnumerable<T> objek, setiap objek mewakili sebahagian daripada koleksi asal.

Penyelesaian ini menyediakan cara yang mudah dan boleh dibaca untuk membahagikan koleksi kepada subset menggunakan LINQ.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Koleksi kepada Berbilang Bahagian 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan