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!