Füllen Sie die linke oder rechte Seite eines Linq-Joins mit der gleichen Anzahl von Zeilen auf

Mein Ziel ist es, eine Liste mit der gleichen Anzahl von Zeilen rechts oder links zu erstellen, unabhängig davon, ob die linke oder rechte Spalte kürzer als die andere ist.

Betrachten Sie diese beiden Abfragen:

var result1 = (from f in list2
               join b in list1 on f.index equals b.index into bf
               from x in bf.DefaultIfEmpty()
               select new { box = (x == null ? String.Empty : x.b), file = f.f });

var result2 = (from b in list1
              join f in list2 on b.index equals f.index into bf
              from x in bf.DefaultIfEmpty()
              select new { l1 = x.f, l2 = (x == null ? String.Empty : b.b) });

Eine prüft die Liste1 auf Null und füllt eine leere Zeichenfolge aus, die andere prüft die Liste2 auf Null und füllt eine leere Zeichenfolge aus.

Ich würde gerne ein Beispiel finden, wo beides passieren kann. Die Reihenfolge ist nicht wichtig, nur, dass jeder Wert oder jede leere Zeichenfolge auf der linken Seite einen Wert oder eine leere Zeichenfolge auf der rechten Seite enthält.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage