Maison >développement back-end >C++ >Comment puis-je diviser une collection en sous-ensembles de taille (presque) égale à l'aide de LINQ ?
Diviser une collection en sous-ensembles à l'aide de LINQ
LINQ permet de diviser une collection en un nombre spécifié de sous-ensembles. Contrairement au fractionnement pair, le dernier sous-ensemble peut avoir un nombre d'éléments différent de celui des autres sous-ensembles.
Pour y parvenir, nous pouvons utiliser une méthode d'extension simple LINQ :
<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>
En utilisant cette méthode, vous pouvez diviser la collection en sous-collections tout en vous assurant que le dernier sous-ensemble peut être de tailles différentes. Le code ci-dessus fait cela en regroupant les éléments en fonction de leur index modulo le nombre de sous-ensembles, les attribuant ainsi à différents sous-ensembles.
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!