Maison >développement back-end >C++ >Comment puis-je diviser efficacement une collection en sous-ensembles à l'aide de LINQ ?

Comment puis-je diviser efficacement une collection en sous-ensembles à l'aide de LINQ ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-20 03:51:09913parcourir

How Can I Efficiently Split a Collection into Subsets Using 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 :

  • Lisibilité : La syntaxe concise de LINQ améliore la clarté du code.
  • Performance : La mise en œuvre optimisée de LINQ garantit un traitement efficace.
  • Polyvalence : La méthode est adaptable à différents types de collections et tailles de 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!

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