Maison >développement back-end >C++ >Comment puis-je diviser une liste en sublilistes d'une taille spécifique en utilisant LINQ en C #?

Comment puis-je diviser une liste en sublilistes d'une taille spécifique en utilisant LINQ en C #?

Barbara Streisand
Barbara Streisandoriginal
2025-02-01 22:46:12873parcourir

How Can I Split a List into Sublists of a Specific Size Using LINQ in C#?

Utilisez LINQ pour diviser la liste en une liste

En C #, nous rencontrons souvent des situations qui doivent diviser la liste en pièces ou listes d'enfants plus petites. Une façon d'atteindre cet objectif est d'élargir le puissant LINQ (Language Integration Query) en C #.

Considérons les exemples que vous fournissez. Vous avez un , et vous souhaitez créer un

ou

, de sorte que chaque liste générée contient un certain nombre d'éléments continus (par exemple, 3) dans la liste originale. List<T> List Pour résoudre ce problème avec LINQ, vous pouvez utiliser le code suivant: List<T>[]

Ce code regroupe d'abord les éléments de la liste des sources en fonction du résultat du résultat

. Cela les regroupera en blocs
<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>
. Ensuite, nous utilisons l'opérateur pour convertir chaque groupe en liste de valeurs et utilisons l'opérateur

pour créer une liste d'une liste. chunkSize chunkSize par exemple, si vous avez une liste originale Select, et ToList comme 3, alors la sous-liste produite sera

,

, [a, g, e, w, p, s, q, f, x, y, i, m, c], chunkSize, [a, g, e] . La taille de la liste générée est déterminée par le nombre d'éléments dans la liste d'origine et la taille spécifiée dans l'opération de groupe. En général, cette solution basée sur Linq fournit une méthode efficace. Le code a été modifié pour accepter les paramètres pour le rendre plus courant. [w, p, s]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn