Maison >développement back-end >C++ >Comment puis-je diviser efficacement une collection en sous-ensembles à l'aide de LINQ ?
LINQ : un outil puissant pour la création de sous-ensembles
La manipulation des données nécessite souvent de diviser les grandes collections en sous-ensembles plus petits et gérables. LINQ (Language Integrated Query) fournit une solution élégante et efficace pour cette tâche courante.
La solution LINQ
La méthode d'extension LINQ suivante divise efficacement une collection en plusieurs sous-ensembles :
<code class="language-csharp">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>
Cette méthode accepte une collection (list
) et le nombre souhaité de sous-ensembles (parts
). Il exploite les opérateurs GroupBy
et Select
de LINQ pour partitionner l'entrée. L'opérateur modulo (%
) assure une répartition uniforme entre les sous-ensembles, en gérant les cas où la taille de la collection n'est pas parfaitement divisible par parts
.
Application pratique
Voici comment utiliser la méthode Split
:
<code class="language-csharp">List<int> numbers = Enumerable.Range(1, 100).ToList(); IEnumerable<IEnumerable<int>> splitNumbers = numbers.Split(5);</code>
Cet exemple divise une liste de 100 entiers en 5 sous-ensembles. Notez que les sous-ensembles résultants peuvent avoir des tailles différentes si la taille de la collection d'origine n'est pas un multiple de parts
.
Avantages de l'approche LINQ
L'emploi de LINQ pour cette tâche offre plusieurs avantages clé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!