Utilisez LINQ pour aplatir les listes imbriquées
Lorsqu'il s'agit de listes imbriquées dans LINQ, il est parfois nécessaire de convertir plusieurs listes en une seule liste aplatie. Ceci peut être réalisé en utilisant la méthode SelectMany()
.
Scène :
Considérez la requête LINQ suivante qui renvoie une liste imbriquée d'entiers :
<code class="language-csharp">IEnumerable<List<int>> iList = (from number in (from no in Method() select no) select number).ToList();</code>
Si vous devez générer une seule liste contenant tous les éléments de la liste imbriquée, vous pouvez modifier la requête comme suit :
<code class="language-csharp">var result = iList.SelectMany(i => i);</code>
SelectMany()
prend chaque élément de la séquence d'entrée (dans ce cas, chaque liste) et le projette dans une nouvelle séquence. En spécifiant le paramètre i
, chaque élément de la liste imbriquée devient un nouvel élément dans la séquence de sortie.
Exemple :
Pour les listes sources [1, 2, 3, 4] et [5, 6, 7], la requête modifiée produira la liste aplatie suivante :
<code>[1, 2, 3, 4, 5, 6, 7]</code>
Ainsi, en utilisant la méthode SelectMany()
, vous pouvez convertir une liste imbriquée d'entiers en une seule liste aplatie dans LINQ.
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!