SelectMany
est certainement la bonne approche, que ce soit à l'aide de plusieurs "à partir de" clauses ou par un appel direct, mais ici, c'est une alternative à Hightechrider de l'utilisation de celui-ci:
var result = aList.SelectMany(a => bList, (a, b) => a + b);
Personnellement, je trouve cela plus facile à comprendre car il est plus proche du "multiple" version: un "a" dans "accédez à la liste", nous produisons une nouvelle séquence - dans ce cas, il est toujours "bList". Pour chaque (a, b) paire produite par la rupture Cartésienne rejoindre, nous avons projet de à un résultat qui est juste la concaténation des deux.
Juste pour être clair: les deux approches. Je préfère juste celui-ci :)
Quant à savoir si c'est plus clair que la syntaxe d'expression de requête... je ne suis pas sûr. J'ai généralement utiliser les appels de méthode quand il est juste un cas d'utilisation d'un seul opérateur, mais pour l' Join
, GroupJoin
, SelectMany
et GroupBy
, les expressions de requête n'simplifier les choses. Essayer les deux et voir lequel vous trouvez plus lisible :)