Maison >développement back-end >C++ >Comment LINQ peut-elle diviser efficacement une liste en sublilistes d'une taille spécifiée?

Comment LINQ peut-elle diviser efficacement une liste en sublilistes d'une taille spécifiée?

Susan Sarandon
Susan Sarandonoriginal
2025-02-01 22:36:13649parcourir

How Can LINQ Efficiently Split a List into Sublists of a Specified Size?

Utiliser la liste de segmentation efficace LINQ

Linq fournit une méthode de traitement des données simple et puissante pour l'application .NET, y compris la fonction de division de la liste en sous-liste selon diverses conditions.

Considérez les problèmes suivants: vous avez un

, vous devez le diviser en plusieurs sous-listes de l'objet

, et la taille de chaque liste d'enfants est déterminée par l'index. Par exemple, la liste originale contient les éléments suivants: List<T> T

La liste que vous souhaitez obtenir est:
<code>[a, g, e, w, p, s, q, f, x, y, i, m, c]</code>

La taille de la sous-liste peut être spécifiée en tant que paramètre de fonction.
<code>[a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]</code>

Une solution utilisant LINQ est la suivante:

Ce code exécute les étapes suivantes:
<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source, int sublistSize)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / sublistSize)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}</code>

Selon le groupe d'index
    :
  1. La méthode est payée aux éléments de la liste des sources en fonction de l'indice des éléments, chaque groupe représente une sous-liste différente. Taille de la sous-ligne de contrôle des paramètres. GroupBy Sélectionnez la sous-liste sublistSize:
  2. La méthode est utilisée pour extraire les valeurs de chaque groupe en une nouvelle liste.
  3. Converti dans la liste de liste : Utilisez ensuite Select pour convertir le groupe en liste.
  4. Le résultat est un , chacun contenant les éléments spécifiés de la liste originale, et est divisé en fonction de l'indice du projet. En passant dans les paramètres , la taille de la sous-liste peut être contrôlée de manière flexible. ToList

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