Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melakukan gabungan luar kiri di Linq tanpa menggunakan klausa Join-on-Equal-Equal-Into?
c# linq kiri luar bergabung: Pendekatan alternatif
Artikel ini menunjukkan bagaimana untuk melakukan gabungan luar kiri di Linq ke objek tanpa menggunakan klausa tradisional. Kami memanfaatkan pengendali join-on-equals-into
dan from
bersamaan dengan join
untuk penyelesaian ringkas dan cekap. DefaultIfEmpty()
<code class="language-csharp">var q = from l in lefts join r in rights on l.Key equals r.Key into ps_jointable from p in ps_jointable.DefaultIfEmpty() select new JoinPair { LeftId = l.Id, RightId = p?.Id ?? 0 };</code>Pertanyaan LINQ ini melaksanakan gabungan luar kiri pada koleksi
dan lefts
, menghasilkan koleksi baru rights
objek. Bagi setiap item dalam JoinPair
, ia cuba mencari item yang sepadan dalam lefts
berdasarkan harta rights
dalam Key
akan memegang RightId
item yang dipadankan JoinPair
. Jika tiada perlawanan dijumpai, Id
lalai ke 0 menggunakan pengendali null-conditional (rights
) dan pengendali pengarang null (RightId
?.
kaedah ??
adalah penting. Ia memastikan hasilnya dihasilkan walaupun tiada perlawanan yang terdapat dalam koleksi
mengembalikan nilai lalai (null dalam kes ini), yang kemudiannya ditangani dengan anggun oleh pengendali pengendali null-conditional dan null-coalescing. Pendekatan ini memberikan alternatif yang lebih mudah dibaca dan berpotensi lebih kepada sintaks DefaultIfEmpty()
standard untuk gabungan luar kiri di LINQ. rights
Atas ialah kandungan terperinci Bagaimana untuk melakukan gabungan luar kiri di Linq tanpa menggunakan klausa Join-on-Equal-Equal-Into?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!