Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Linq boleh digunakan untuk memecah senarai ke dalam sublists berdasarkan indeks item?

Bagaimanakah Linq boleh digunakan untuk memecah senarai ke dalam sublists berdasarkan indeks item?

Linda Hamilton
Lepaskan: 2025-02-01 22:26:14
asal
616 orang telah melayarinya

How Can LINQ Be Used to Split a List into Sublists Based on Item Index?

Bahagikan senarai menggunakan linq ke dalam subjistis Terdapat sejumlah besar senarai, dan anda mahu memecahnya menjadi lebih kecil dan lebih mudah untuk dikendalikan. LINQ (pertanyaan bersepadu bahasa) adalah alat yang berkuasa yang dapat dengan mudah mencapai ini.

Tugasan: Bagaimana anda menggunakan indeks item

sebagai aksara berasingan dan membahagikan senarai

ke dalam beberapa senarai SomeObject yang berasingan? Sebagai contoh, jika terdapat 13 senarai, anda ingin membahagikan lima bahan untuk tiga item.

Penyelesaian:

Fungsi tersuai menggunakan LINQ untuk melaksanakan tugas ini ditunjukkan di bawah.

public static List<List<T>> Split<T>(IList<T> source)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / 3)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}
Salin selepas log masuk

Penjelasan:

  1. Kumpulan pada item dengan indeks: Pilih Kaedah Membuat objek tanpa nama dengan setiap nilai item dan indeks. Seterusnya, kumpulan kaedah kumpulan objek ini berdasarkan pendaraban indeks 3 (saiz sub -senarai yang dikehendaki).
  2. Tukar ke senarai kumpulan: Pilih Kaedah dalam GroupBy Menukar setiap kumpulan ke dalam senarai. 3
  3. Dalam contoh yang disediakan, [A, G, E, W, P, S, Q, F, F, F, Y, I, M, C, C, C, C, C, C, ia dibahagikan ke g, e], [w, p, s], [q, f, x], [y, i, m], [c]].

Atas ialah kandungan terperinci Bagaimanakah Linq boleh digunakan untuk memecah senarai ke dalam sublists berdasarkan indeks item?. 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