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

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

Linda Hamilton
Libérer: 2025-01-20 04:01:09
original
818 Les gens l'ont consulté

How Can I Split a Collection into Sub-Collections Using LINQ?

Utilisez LINQ pour diviser la collection en sous-collections

Diviser une collection en parties plus petites est une tâche de programmation courante. En utilisant LINQ (Language Integrated Query), vous pouvez y parvenir avec une méthode d'extension simple.

Divisez l'ensemble en N parties

La

méthode d'extension Split reçoit en entrée une collection et le nombre de pièces souhaité et renvoie un IEnumerable<IEnumerable> représentant la sous-collection. Cet algorithme divise les éléments en parties en fonction du reste lorsque l'index actuel est divisé par le nombre de parties.

Mise en œuvre :

<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>
Copier après la connexion

Utilisation :

La méthode

Split peut être utilisée sur n'importe quelle collection IEnumerable. Par exemple, pour diviser une liste de nombres en 3 parties :

<code class="language-csharp">var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var parts = numbers.Split(3);</code>
Copier après la connexion

Cela renverra un IEnumerable contenant 3 IEnumerable collections, chacune contenant un sous-ensemble de la liste d'origine :

<code>部分1:{ 1, 4, 7 }
部分2:{ 2, 5, 8 }
部分3:{ 3, 6, 9 }</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal