J'ai une requête LINQ qui retourne IEnumerable<List<int>>
mais je veux retourner seulement List<int>
donc je veux fusionner tous mes enregistrements dans IEnumerable<List<int>>
un seul tableau.
Exemple :
IEnumerable<List<int>> iList = from number in
(from no in Method() select no) select number;
Je veux porter tout mon résultat IEnumerable<List<int>>
à un seulList<int>
Par conséquent, à partir des tableaux source: [1,2,3,4] et [5,6,7]
Je veux un seul tableau [1,2,3,4,5,6,7]
Merci
SelectMany( i => i )
? J'ai vu cette syntaxe beaucoup utilisée, mais cela semble une utilisation dégénérée de la fonction de sélection, donc je m'attendais à ce que les concepteurs de langage proposent une syntaxe de raccourci spécifiquement pour les listes de listesAvec la syntaxe de requête:
la source
la source
.ToArray()
? - C'est un peu circonstanciel - si vous ne devez répéter qu'une seule fois - ou si les éléments sont susceptibles de changer, ce.ToArray()
n'est certainement pas ce que vous voulez. Mais avec des éléments statiques que vous allez énumérer plusieurs fois,.ToList()
ou.ToArray()
améliorerez les performances (au prix d'une utilisation de mémoire légèrement plus élevée, ce qui est généralement une bonne affaire).List<int>
, ce.ToList()
serait donc le bon choix.Comme ça?
la source
Si vous en avez un,
List<List<int>> k
vous pouvez le fairela source