Je suis actuellement en train de réviser mes connaissances sur LINQ et j'essaie de comprendre la différence entre la fonction let
et en utilisant le into
mot-clé. Jusqu'à présent, le let
semble meilleur que le mot-clé into
mot-clé, d'après ce que j'ai compris.
Le site into
permet essentiellement de poursuivre une requête après une projection. (Je veux juste préciser explicitement que je ne fais pas référence à celui pour la jointure de groupes).
Étant donné un tableau de noms, il 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 le place dans le dossier de l'utilisateur. noVowel
qui permet ensuite d'introduire des where
, orderby
et select
clauses. Une fois que le noVowel
est créée, la variable n
variable n'est plus disponible.
Le site let
d'autre part, utilise des types anonymes temporaires pour vous permettre de réutiliser plus d'une variable à la fois.
Vous pouvez procéder comme suit :
var letQuery =
from n in names
let noVowel = Regex.Replace(n, "[aeiou]", "")
where noVowel.Length > 2
select noVowel;
Les deux noVowel
et n
sont disponibles pour être utilisées (même si je ne l'ai pas utilisé dans ce cas).
Bien que je puisse voir la différence, je n'arrive pas à comprendre pourquoi on voudrait utiliser l'option into
sur le mot-clé let
à moins que l'on veuille explicitement s'assurer que les variables précédentes ne puissent pas être utilisées dans les dernières parties de la requête.
Alors, y a-t-il une bonne raison pour que les deux mots-clés existent ?
0 votes
Est-ce une faute de frappe dans
let
exemple -where noVowel
Qu'est-ce que c'est ?noVowel
dans ce cas ?