Saya sedang mempelajari kembali LINQ dan mencoba memahami perbedaan antara let
dan menggunakan into
kata kunci. Sejauh ini let
kata kunci tampaknya lebih baik daripada into
kata kunci sejauh pemahaman saya.
Kata into
kunci 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 noVowel
variabel yang kemudian memungkinkan seseorang untuk memperkenalkan tambahan where
, orderby
dan select
klausa. Setelah noVowel
variabel dibuat, n
variabel 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 noVowel
dan n
tersedia untuk digunakan (meskipun saya belum menggunakannya dalam kasus ini).
Meskipun saya dapat melihat perbedaannya, saya tidak begitu mengerti mengapa seseorang ingin menggunakan into
kata kunci di atas let
kata 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?
let
contoh -where noVowel
, apanoVowel
dalam kasus itu?