Saya sedang mempelajari kembali LINQ dan mencoba memahami perbedaan antara letdan menggunakan intokata kunci. Sejauh ini letkata kunci tampaknya lebih baik daripada intokata kunci sejauh pemahaman saya.
Kata intokunci pada dasarnya memungkinkan seseorang untuk melanjutkan kueri setelah proyeksi. (Hanya ingin menyatakan secara eksplisit bahwa saya tidak merujuk ke grup untuk bergabung.)
Diberikan berbagai nama, memungkinkan seseorang untuk melakukan hal berikut:
var intoQuery =
from n in names
select Regex.Replace(n, "[aeiou]", "")
into noVowel
where noVowel.Length > 2
select noVowel;
Dibutuhkan hasil pilih dan tempat ke dalam noVowelvariabel yang kemudian memungkinkan seseorang untuk memperkenalkan tambahan where, orderbydan selectklausa. Setelah noVowelvariabel dibuat, nvariabel tersebut tidak lagi tersedia.
Sebaliknya let, kata kunci menggunakan jenis anonim sementara untuk memungkinkan Anda menggunakan kembali lebih dari satu variabel dalam satu waktu.
Anda dapat melakukan hal berikut:
var letQuery =
from n in names
let noVowel = Regex.Replace(n, "[aeiou]", "")
where noVowel.Length > 2
select noVowel;
Baik variabel noVoweldan ntersedia untuk digunakan (meskipun saya belum menggunakannya dalam kasus ini).
Meskipun saya dapat melihat perbedaannya, saya tidak begitu mengerti mengapa seseorang ingin menggunakan intokata kunci di atas letkata kunci kecuali seseorang secara eksplisit ingin memastikan bahwa variabel sebelumnya tidak dapat digunakan di bagian akhir kueri.
Jadi, adakah alasan bagus mengapa kedua kata kunci tersebut ada?

letcontoh -where noVowel, apanoVoweldalam kasus itu?