ホームページ > バックエンド開発 > C++ > 「Join-on-Equals-into」条項を使用せずにLINQで左外の結合を実行する方法は?

「Join-on-Equals-into」条項を使用せずにLINQで左外の結合を実行する方法は?

Barbara Streisand
リリース: 2025-02-02 14:41:10
オリジナル
981 人が閲覧しました

How to Perform a Left Outer Join in LINQ Without Using `join-on-equals-into` Clauses?

linqで左外の接続を実行すると、「equals-on-equals-ininto」条項はありません

c#linqをオブジェクトにすると、「equals-on-equals-ininto」句を使用して左外の接続を実行するのは非常に簡単です。ただし、場合によっては、Where句を使用することがより望ましい場合があります。

内部接続には、簡単な解決策があります:

ただし、左の外部接続の場合、問題は、一致するアイテムが見つからないときに右側の運用数が見つからないことです。次の試みを検討してください:

<code class="language-csharp">List<joinpair> innerFinal = (from l in lefts from r in rights where l.Key == r.Key
                             select new JoinPair { LeftId = l.Id, RightId = r.Id});</code>
ログイン後にコピー
この方法には欠点があります。一致していない左側のボタンのサイレント認識が保証されているため、あいまいさを引き起こす可能性があります。この問題を克服するには、「defaultifenty」メソッドを使用できます。

このソリューションは、「defaultifempty」メソッドを使用して、非一致する左ボタンにデフォルト値を提供し、結果の精度を確保します。
<code class="language-csharp">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>
ログイン後にコピー

この復活した出力は、元の画像を維持し、説明を明確にして、意味を変えることで単語の選択をします

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート