ホームページ >バックエンド開発 >C++ >「Join-On-Equals-Into`条項なしでLinqで左外の結合を実行する方法は?

「Join-On-Equals-Into`条項なしでLinqで左外の結合を実行する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2025-02-02 14:31:09973ブラウズ

How to Perform Left Outer Joins in LINQ without `join-on-equals-into` Clauses?

左の外部接続を実行する必要はありませんオブジェクトには、メソッドを使用して、join-on-equals-into句の左の外部接続を実行できます。 左の外部接続のソリューション

DefaultIfEmpty() join-on-equals-into

句を使用して左の外部接続を実行するには、次のようにコードを変更してください。

説明

接続条件が一致しない場合は、接続されているコレクションタイプのデフォルト値を返します(この例ではWhere)。これにより、右のテーブルに右のテーブル()のすべての線が含まれている場合があります。

<code class="language-csharp">List<joinpair> leftFinal = (from l in lefts
                             join r in rights on l.Key equals r.Key into temp
                             from r in temp.DefaultIfEmpty()
                             select new JoinPair { LeftId = l.Id, RightId = r == null ? 0 : r.Id });</code>

内部接続用に提供されるコードを考慮してください:

左の外部接続を実現するには、DefaultIfEmpty()条項を次のものに置き換えてください。 JoinPair leftsこの変更により、左側のすべての線が結果に含まれていることを保証します。たとえば、右に一致していない線を含みますrights

以上が「Join-On-Equals-Into`条項なしでLinqで左外の結合を実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。