Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh memecah senarai ke dalam sublists saiz tertentu menggunakan linq dalam c#?
Dalam C#, kita sering menghadapi situasi yang perlu membahagikan senarai ke dalam kepingan kecil atau senarai kanak -kanak. Salah satu cara untuk mencapai matlamat ini adalah untuk mengembangkan LINQ (pertanyaan integrasi bahasa) yang kuat dalam C#.
mari kita pertimbangkan contoh yang anda berikan. Anda mempunyai , dan anda ingin membuat
atau, supaya setiap senarai yang dihasilkan mengandungi sejumlah item berterusan (contohnya, 3) dalam senarai asal. List<T>
List
Untuk menyelesaikan masalah ini dengan LINQ, anda boleh menggunakan kod berikut: List<T>[]
Kod ini pertama kumpulan unsur -unsur dalam senarai sumber berdasarkan hasil hasil
. Ini akan mengumpulkan mereka ke dalam blok<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source, int chunkSize) { return source .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / chunkSize) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); }</code>. Kemudian, kami menggunakan pengendali untuk menukar setiap kumpulan ke senarai nilai, dan gunakan pengendali
untuk membuat senarai senarai. chunkSize
Sebagai contoh, jika anda mempunyai senarai asal chunkSize
, dan Select
sebagai 3, maka sub -list yang dihasilkan akan ToList
,
, [a, g, e, w, p, s, q, f, x, y, i, m, c]
. Saiz senarai yang dihasilkan ditentukan oleh bilangan item dalam senarai asal dan saiz yang ditentukan dalam operasi kumpulan. Secara umum, penyelesaian berasaskan Linq ini menyediakan kaedah yang berkesan. Kod ini telah diubahsuai untuk menerima parameter untuk menjadikannya lebih biasa. chunkSize
Atas ialah kandungan terperinci Bagaimanakah saya boleh memecah senarai ke dalam sublists saiz tertentu menggunakan linq dalam c#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!