. NET's LINQ Revolusioner meningkatkan keupayaan pemaju untuk menulis kod yang mudah dan cekap. Walau bagaimanapun, pilihan antara tatabahasa yang lancar dan pertanyaan ekspresi dan tatabahasa mungkin hanya menjadi pilihan untuk sesetengah orang. Marilah kita meneroka kelebihan masing -masing untuk menjelaskan senario mereka yang berkenaan.
pertanyaan dalam pertanyaan dalam pertanyaan kompleks
Apabila memproses pertanyaan kompleks yang melibatkan pelbagai pembolehubah pelbagai, tatabahasa pertanyaan berfungsi dengan baik. Keadaan ini muncul dalam adegan berikut:
Gunakan kata kunci
let
from
pertimbangkan contoh berikut: tatabahasa lancar: kesederhanaan dan fleksibiliti
<code class="language-csharp">string[] fullNames = { "Anne Williams", "John Fred Smith", "Sue Green" }; var query = from fullName in fullNames from name in fullName.Split() orderby fullName, name select name + " came from " + fullName;</code>
Pertanyaan mudah yang tidak memerlukan fungsi peringkat tinggi, tatabahasa yang lancar lebih baik. Ia menyediakan cara yang lebih ringkas dan langsung untuk menyatakan pertanyaan anda, terutamanya apabila berurusan dengan operasi yang kurang rumit. Di samping itu, tatabahasa yang lancar boleh mengakses semua pengendali pertanyaan.
contohnya: Kelebihan kedua -dua kaedah
anda boleh menggabungkan pertanyaan dan kaedah tatabahasa untuk menggunakan kelebihan masing -masing. Ini sangat biasa di linq hingga pertanyaan sql:
<code class="language-csharp">var query = fullNames .SelectMany(fName => fName.Split().Select(name => new { name, fName })) .OrderBy(x => x.fName) .ThenBy(x => x.name) .Select(x => x.name + " came from " + x.fName);</code>
Pada akhirnya, pilihan antara tatabahasa lancar dan ekspresi pertanyaan bergantung kepada sifat pertanyaan. Untuk pertanyaan kompleks yang melibatkan pelbagai pembolehubah pelbagai, ungkapan pertanyaan menyediakan fleksibiliti dan kebolehbacaan;
Atas ialah kandungan terperinci Fluent vs Expression Query di Linq: Bilakah saya harus menggunakan sintaks yang mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!