Şu anda LINQ fırçalama ediyorum arasındaki farkı anlamak için çalışıyorum let
ve kullanma into
anahtar kelime. Şimdiye kadar let
kelime daha iyi görünüyor into
kadarıyla benim anlayış gider anahtar kelime.
into
Anahtar kelime esasen tek bir projeksiyon sonra sorgu devam etmesini sağlar. (Açıkça belirtmek isterim ki, gruba katılmak için olana atıfta bulunmuyorum.)
Bir dizi ad verildiğinde, aşağıdakilerin yapılmasına izin verir:
var intoQuery =
from n in names
select Regex.Replace(n, "[aeiou]", "")
into noVowel
where noVowel.Length > 2
select noVowel;
Bu seçme sonucunu alır ve içine yerleştirir noVowel
, sonra bir ek tanıtmak sağlayan değişken where
, orderby
ve select
cümleleri. Bir kez noVowel
değişken oluşturulduğunda,n
artık kullanılamaz.
let
Anahtar kelime, diğer taraftan, bir seferde birden fazla değişkeni yeniden sağlamak için geçici anonim türleri kullanır.
Aşağıdakileri yapabilirsiniz:
var letQuery =
from n in names
let noVowel = Regex.Replace(n, "[aeiou]", "")
where noVowel.Length > 2
select noVowel;
Hem noVowel
ve n
değişkenler (bu durumda kullanmadıysanız bile) kullanım için mevcuttur.
Farkı görebilsem de , önceki değişkenlerin sorgunun sonraki bölümlerinde kullanılamayacağından emin olmak istemedikçe into
, let
anahtar kelimeyi neden anahtar kelime yerine kullanmak isteyeceğimi tam olarak anlayamıyorum .
Peki, her iki anahtar kelimenin de var olmasının iyi bir nedeni var mı?
let
Örnekte bir yazım hatası mı - bu durumdawhere noVowel
ne varnoVowel
?