Maison > développement back-end > C++ > Comment utiliser LINQ pour diviser une liste en sublilistes en fonction de l'indice des éléments?

Comment utiliser LINQ pour diviser une liste en sublilistes en fonction de l'indice des éléments?

Linda Hamilton
Libérer: 2025-02-01 22:26:14
original
643 Les gens l'ont consulté

How Can LINQ Be Used to Split a List into Sublists Based on Item Index?

Divisez la liste en utilisant LINQ en un sous-jististe

Il y a un grand nombre de listes, et vous souhaitez le diviser en plus petit et plus facile à manipuler. Linq (Language Integrated Query) est un outil puissant qui peut facilement y parvenir.

Affectation:

Comment utilisez-vous l'index

des éléments comme un caractère distinct et diviser la liste en plusieurs listes de points distinctes? Par exemple, s'il y a 13 listes, vous souhaitez diviser en cinq sous-statures pour trois éléments.

Solution:

Les fonctions personnalisées utilisant LINQ pour exécuter cette tâche sont présentées ci-dessous.

public static List<List<T>> Split<T>(IList<T> source)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / 3)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}
Copier après la connexion

Explication:

  1. Groupe sur les éléments avec des index: Sélectionner la méthode crée des objets anonymes avec chaque valeur et index de chaque élément. Ensuite, les groupes de méthode groupby de ces objets en fonction de la multiplication de l'index 3 (la taille de la sous-liste souhaitée).
  2. Convertir en une liste de groupe: Sélectionner la méthode dans GroupBy convertit chaque groupe en une liste.
  3. Conversion de Liste: Enfin, la méthode Tolist convertit ienumerable & lt;
Dans l'exemple fourni, [a, g, e, w, p, s, q, f, f, f, y, i, m, c, c, c, c, c, c, il est divisé en g, e], [w, p, s], [q, f, x], [y, i, m], [c]].

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 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