Ich aktualisiere gerade LINQ und versuche, den Unterschied zwischen dem letund dem intoSchlüsselwort zu verstehen . Bisher letscheint das intoSchlüsselwort meines Wissens besser zu sein als das Schlüsselwort.
Das intoSchlüsselwort ermöglicht es im Wesentlichen, eine Abfrage nach einer Projektion fortzusetzen. (Ich möchte nur ausdrücklich darauf hinweisen, dass ich mich nicht auf die für den Gruppenbeitritt beziehe.)
Bei einer Reihe von Namen kann man Folgendes tun:
var intoQuery =
from n in names
select Regex.Replace(n, "[aeiou]", "")
into noVowel
where noVowel.Length > 2
select noVowel;
Es nimmt das Ergebnis der Auswahl und legt sie in die noVowelVariable , die dann eine weitere einführen können where, orderbyund selectKlauseln. Sobald die noVowelVariable erstellt wurde, nist sie nicht mehr verfügbar.
Das letSchlüsselwort verwendet dagegen temporäre anonyme Typen, damit Sie mehr als eine Variable gleichzeitig wiederverwenden können.
Sie können Folgendes tun:
var letQuery =
from n in names
let noVowel = Regex.Replace(n, "[aeiou]", "")
where noVowel.Length > 2
select noVowel;
Sowohl die noVowelals auch die nVariablen stehen zur Verwendung zur Verfügung (obwohl ich sie in diesem Fall nicht verwendet habe).
Obwohl ich den Unterschied sehen kann, kann ich nicht ganz verstehen, warum man das intoSchlüsselwort über dem letSchlüsselwort verwenden möchte, es sei denn, man wollte ausdrücklich sicherstellen, dass vorherige Variablen in späteren Teilen der Abfrage nicht verwendet werden konnten.
Gibt es einen guten Grund, warum beide Schlüsselwörter existieren?

letBeispiel -where noVowelwas istnoVowelin diesem Fall?