Maison >développement back-end >C++ >Comment la méthode SelectMany () de Linq peut-elle aplatir une liste imbriquée des entiers?

Comment la méthode SelectMany () de Linq peut-elle aplatir une liste imbriquée des entiers?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-26 15:36:09423parcourir

How Can LINQ's SelectMany() Method Flatten a Nested List of Integers?

Utilisation de SelectMany () de Linq pour aplatir les listes entières imbriquées

Les requêtes LINQ produisent souvent des collections imbriquées, comme IEnumerable<List<int>>. La méthode SelectMany() s'aplatit efficacement en une seule liste.

Le défi:

Supposons qu'une requête LINQ renvoie une liste de listes d'entiers (IEnumerable<List<int>>). La tâche consiste à combiner ces listes intérieures en une seule dimension List<int>.

Exemple illustratif:

En commençant par ces listes d'entrée:

<code>[1, 2, 3, 4] and [5, 6, 7]</code>

La sortie souhaitée est:

<code>[1, 2, 3, 4, 5, 6, 7]</code>

Solution avec selectMany ():

Linq SelectMany() simplifie ce processus. Voici comment aplatir la liste imbriquée:

<code class="language-csharp">var nestedList = new List<List<int>> { new List<int> { 1, 2, 3, 4 }, new List<int> { 5, 6, 7 } };
var flattenedList = nestedList.SelectMany(innerList => innerList).ToList(); </code>

Explication:

  • nestedList: Cela représente la liste d'entrée des listes.
  • SelectMany(innerList => innerList): C'est le cœur de la solution. SelectMany() itére à travers chaque innerList dans nestedList. L'expression Lambda innerList => innerList projette simplement chaque liste intérieure sur elle-même, déballant efficacement la nidification.
  • .ToList(): Cela convertit la séquence aplatie résultante en a List<int>.

Ce code concise aplatit efficacement la liste imbriquée, fournissant la liste des entiers unique souhaitée.

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