Maison >développement back-end >C++ >Comment puis-je diviser une liste en sublilistes d'une taille spécifique en utilisant LINQ en C #?
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!