Şu anda LINQ fırçalama ediyorum arasındaki farkı anlamak için çalışıyorum letve kullanma intoanahtar kelime. Şimdiye kadar letkelime daha iyi görünüyor intokadarıyla benim anlayış gider anahtar kelime.
intoAnahtar 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, orderbyve selectcümleleri. Bir kez noVoweldeğişken oluşturulduğunda,n artık kullanılamaz.
letAnahtar 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 noVowelve ndeğ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, letanahtar 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 noVowelne varnoVowel?