Heim >Backend-Entwicklung >C++ >Wie führe ich linke Außenverbindungen in Linq ohne 'Join-on-Equals-into' -Klauseln durch?

Wie führe ich linke Außenverbindungen in Linq ohne 'Join-on-Equals-into' -Klauseln durch?

Patricia Arquette
Patricia ArquetteOriginal
2025-02-02 14:31:09912Durchsuche

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

müssen die linke externe Verbindung nicht ausführen

join-on-equals-into In C# linq zu Objekten können Sie die

-Methode verwenden, um die linke externe Verbindung der

-Klausel auszuführen. DefaultIfEmpty() join-on-equals-into Lösung auf der linken externen Verbindung

Um die -Klausel zur Ausführung der linken externen Verbindung zu verwenden, ändern Sie den Code wie folgt:

Erläuterung 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>
Wenn die Verbindungsbedingungen nicht übereinstimmen, geben Sie den Standardwert des angeschlossenen Sammelstyps zurück (

in diesem Beispiel). Dies stellt sicher, dass alle Zeilen in der linken Tabelle () in den Ergebnissen enthalten sind, auch wenn es in der rechten Tabelle () keine übereinstimmende Linie gibt.

Beispiel

DefaultIfEmpty() JoinPair Berücksichtigen Sie den Code für die interne Verbindung: lefts rights

Um die linke externe Verbindung zu erreichen, ersetzen Sie bitte

Klauseln in Folgendes:

Diese Modifikation stellt sicher, dass alle Zeilen in der linken

in die Ergebnisse enthalten sind, einschließlich derer Zeilen, die nicht im rechten

übereinstimmen.
<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>

Das obige ist der detaillierte Inhalt vonWie führe ich linke Außenverbindungen in Linq ohne 'Join-on-Equals-into' -Klauseln durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn