Je suis actuellement en train de réviser LINQ et j'essaie de comprendre la différence entre le let
et l'utilisation du into
mot - clé. Jusqu'à présent, le let
mot - clé semble meilleur que le into
mot - clé dans la mesure où je comprends.
Le into
mot-clé permet essentiellement de poursuivre une requête après une projection. (Je veux juste indiquer explicitement que je ne fais pas référence à celui de la jointure de groupe.)
Étant donné un tableau de noms, cela permet de faire ce qui suit:
var intoQuery =
from n in names
select Regex.Replace(n, "[aeiou]", "")
into noVowel
where noVowel.Length > 2
select noVowel;
Il prend le résultat de la sélection et la place dans la noVowel
variable qui permet alors d'introduire d' autres where
, orderby
et les select
clauses. Une fois la noVowel
variable créée, la n
variable n'est plus disponible.
Le let
mot-clé, quant à lui, utilise des types anonymes temporaires pour vous permettre de réutiliser plusieurs variables à la fois.
Vous pouvez faire ce qui suit:
var letQuery =
from n in names
let noVowel = Regex.Replace(n, "[aeiou]", "")
where noVowel.Length > 2
select noVowel;
Les variables noVowel
et n
sont disponibles pour utilisation (même si je ne les ai pas utilisées dans ce cas).
Bien que je puisse voir la différence, je ne peux pas vraiment comprendre pourquoi on voudrait utiliser le into
mot - clé sur le let
mot - clé à moins que l'on ne veuille explicitement s'assurer que les variables précédentes ne pouvaient pas être utilisées dans les dernières parties de la requête.
Alors, y a-t-il une bonne raison pour laquelle les deux mots-clés existent?
let
exemple -where noVowel
, qu'est-ce que c'estnoVowel
dans ce cas?