Maison > développement back-end > C++ > Comment puis-je aplatir un IEnumerable imbriqué dans LINQ ?

Comment puis-je aplatir un IEnumerable imbriqué dans LINQ ?

Susan Sarandon
Libérer: 2025-01-26 15:51:09
original
938 Les gens l'ont consulté

How Can I Flatten a Nested IEnumerable in LINQ?

ienumerable

Dans Linq, vous pouvez rencontrer le cas de l'iénumation imbriqué, et vous devez "flatter" pour obtenir une seule ienuation fusionnée. Lorsque l'iénumer interne contient le même type d'élément que l'iénumabilité externe, le processus plat devient nécessaire.

Étude de cas:

Considérez l'exemple fourni:

Dans cet exemple, Ilist représente une ienumeration imbriquée, chacune étant une liste

. L'objectif est de fusionner toutes ces listes imbriquées dans une seule liste
<code>IEnumerable<List<int>> iList = from number in
    (from no in Method() select no) select number;</code>
Copier après la connexion
.

Solution: selectMany ()

linq fournit la méthode SelectMany (), qui est spécialement utilisée pour montrer la collection iennumable d'aplatissement. Il traverse l'insumer externe et projeté chaque élément de jeu interne dans le nouveau ienumerable.

Pour obtenir les résultats requis, vous pouvez utiliser selectMany ():

Dans ce code, la méthode SELECTIONMANY () obtient chaque liste contenue dans ILIST (représentée par la variable I) et relie l'élément de la liste à la nouvelle exposition nommée inutile Nommé résultat.

Exemple:

<code>var result = iList.SelectMany(i => i);</code>
Copier après la connexion

Grâce à cet exposition, le tableau imbriqué d'origine [1,2,3,4] et [5,6,7] seront combinés en un seul tableau comme prévu [1,2,3,4,5,6 , 7].

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