Je suis actuellement en train de réviser LINQ et j'essaie de comprendre la différence entre le letet l'utilisation du intomot - clé. Jusqu'à présent, le letmot - clé semble meilleur que le intomot - clé dans la mesure où je comprends.
Le intomot-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 noVowelvariable qui permet alors d'introduire d' autres where, orderbyet les selectclauses. Une fois la noVowelvariable créée, la nvariable n'est plus disponible.
Le letmot-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 noVowelet nsont 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 intomot - clé sur le letmot - 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?

letexemple -where noVowel, qu'est-ce que c'estnoVoweldans ce cas?