態 在沒有標準語法的情況下,在LINQ中實現左外連接可能具有挑戰性。儘管內部連接具有直接的實現,但左外連接需要不同的策略。 讓我們探索一個常見的誤解,然後是正確的方法。
>
join-on-equals-into
有缺陷的嘗試:
>子句中使用條件分配來模仿左外的聯接:join-on-equals-into
此方法無法準確表示左外連接,因為它為具有多個匹配右側元素的左側元素生成了多個條目,並且在右側沒有匹配的情況下,它無法正確處理案例給定的左側元素。
>使用的正確方法:select
>
<code class="language-csharp">// Incorrect approach List<JoinPair> leftFinal = (from l in lefts from r in rights select new JoinPair { LeftId = l.Id, RightId = (l.Key == r.Key) ? r.Id : 0 });</code>>方法。 這種方法優雅地處理了缺乏匹配的右側元素。
這是如何有效地執行左外部加入的方法:
此代碼首先執行組加入(DefaultIfEmpty()
)。 然後,即使為空(右側沒有匹配),它仍然會產生一個元素,從而允許後續
)和Null-Coalescing Operator(DefaultIfEmpty()
>的電勢
以上是如何在LINQ中執行左外連接,而不使用' join-equals-into”子句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!