So führen Sie linke Außenverbindungen durch - Linq in C#

So führen Sie linke Außenverbindungen durch - Linq in C#

So Anzeigen von passenden Datensätzen aus der linken Tabelle und der rechten Tabelle in SQL Die linke äußere Join ist eine Art Join -Operation, der verwendet wird. In LINQ kann der linke äußere Join mit den Methoden GroupJoin () und SelectMany () durchgeführt werden. In diesem Artikel wird in diesem Artikel ausführlich diskutiert, dass die linke äußere Verknüpfungen in LINQ mit C# durchgeführt werden.

So führen Sie mit C# linke äußere Verknüpfungen in Linq durch

Um einen linken äußeren Join in LINQ durchzuführen, können Sie die Gruppe GroupJoin () verwenden, um zwei Sequenzen basierend auf einem gemeinsamen Schlüssel zu verbinden und dann die Methode SelectMany () zu verwenden, um das Ergebnis zu verflachen. Hier ist ein Beispiel:

mit System verwenden;
Verwenden von System.Linq;
Klassenprogramm

statische void main ()

var links = new [] 1, 2, 3;
var right = new [] 2, 3, 4;
var result = links.GroupJoin (
Rechts,
l => l,
r => r,
(l, r) => new links = l, rechts = r.DefaultIfeMpty ())
.SelectMany (
lr => lr.Rechts.Wählen(
r => neu links = lr.Links, rechts = r));
foreach (var item im Ergebnis)

Konsole.WriteLine ("0 1", Element.Links, Artikel.Rechts);


Dieser Code führt einen linken Außenverbindungen auf zwei links und rechts aus und druckt das Ergebnis in der Konsole. Die GroupJoin () -Methode führt den Join aus und die SelectMany () Die Methode wird verwendet, um das Ergebnis zu verflachen. Schließlich wird das Ergebnis mit einer Funktion für Schleife und WriteLine () in die Konsole gedruckt:

Hier ist ein weiteres Beispiel, das die Verwendung der Ausführung von ausgelassenen Anschlüssen zeigt, indem die jeweiligen Mitarbeiternamen und deren relevante Abteilungen angezeigt werden. Jedem Mitarbeiter ist jede Abteilung eine Nummer zugewiesen, mit der dann dem jeweiligen Mitarbeiter die entsprechende Abteilung entspricht. Hier ist der vollständige Code dafür:

mit System verwenden;
Verwenden von System.Sammlungen.Generisch;
Verwenden von System.Linq;
Namespace YourNameSpace

Klassenprogramm

statische void main (String [] args)

Aufführen Mitarbeiter = neue Liste

New Employeename id = 1, name = "sam", Abteilung = 1,
New Employeename id = 2, name = "jhon", Abteilung = 2,
New Employeename id = 3, name = "Kevin", Abteilung = 2,
New Employeename id = 4, name = "bob", Abteilung = 3
;
Aufführen Abteilungen = neue Liste

Neue Abteilung id = 1, name = "Inhaltsschreiben",
Neue Abteilung id = 2, name = "marketing",
Neue Abteilung id = 3, name = "Engineering"
;
var query = von Employeename bei Mitarbeitern
Schließen Sie sich der Abteilung in Abteilungen an
auf Employeename.Abteilungsabteilung gleich Abteilung.ID in die Abteilungsgruppe
von der Abteilung in der Abteilungsgruppe.DefaultIfeMpty ()
Wählen Sie New EmployeenAmEname = Employeename aus.Name, Abteilungsname = Abteilung?.Name ?? "Keiner" ;
foreach (var ergeben sich in Abfrage)

Konsole.WriteLine ($ "Employeename: Ergebnis.Employeenamename, Abteilung: Ergebnis.Abteilungsname");



Klasse Employeename

public int id get; Satz;
public String Name get; Satz;
public int departmentid get; Satz;

Klassenabteilung

public int id get; Satz;
public String Name get; Satz;

Zunächst wird ein Beispieldaten angegeben, der den Namen des Mitarbeiter und den Namen der Abteilungen enthält, und anschließend wird jeweils eine jeweilige Zahl angegeben. Als nächstes wird der Join -Operation mithilfe des Join -Befehls durchgeführt und danach wird das Ergebnis in einer Variablen mit dem Namen Abfrage gespeichert. Als nächst :

Abschluss

Der linke äußere Join ist eine übliche Operation in SQL und kann auch leicht unter Verwendung von LINQ in C# durchgeführt werden. Mit den Methoden GroupJoin () und SelectMany () können Sie linke Außenverbindungen auf zwei Sequenzen basierend auf einem gemeinsamen Schlüssel durchführen. Obwohl die Syntax für die Durchführung von linken äußeren Verknüpfungen an Linq für Anfänger schwer zu verstehen ist, ist es eine leistungsstarke und flexible Sprache, die es ermöglicht, komplexe Abfragen leicht auszuführen.