Heim >Backend-Entwicklung >C++ >Wie führe ich linke Außenverbindungen in Linq ohne 'Join-on-Equals-into' -Klauseln durch?
join-on-equals-into
In C# linq zu Objekten können Sie die
-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
Klauseln in Folgendes:
Diese Modifikation stellt sicher, dass alle Zeilen in der linkenin 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!