Mit Extension-Syntax versuche ich eine linke Verknüpfung mit LINQ auf zwei Listen, die ich habe. Das folgende ist von der Microsoft-Hilfe, aber ich habe es geändert, um zu zeigen, dass die Haustierliste keine Elemente hat. Was ich am Ende bin, ist eine Liste von 0 Elementen. Ich nehme an, dass dies daran liegt, dass ein Inner-Join stattfindet. Was ich möchte, ist eine Liste von 3 Elementen (die 3 Personen-Objekte) mit Null-Daten für die fehlenden Elemente ausgefüllt. d.h. eine Linke Verbindung. Ist das möglich?LINQ Inner-Join vs Left-Join
Person magnus = new Person { Name = "Hedlund, Magnus" };
Person terry = new Person { Name = "Adams, Terry" };
Person charlotte = new Person { Name = "Weiss, Charlotte" };
//Pet barley = new Pet { Name = "Barley", Owner = terry };
//Pet boots = new Pet { Name = "Boots", Owner = terry };
//Pet whiskers = new Pet { Name = "Whiskers", Owner = charlotte };
//Pet daisy = new Pet { Name = "Daisy", Owner = magnus };
List<Person> people = new List<Person> { magnus, terry, charlotte };
//List<Pet> pets = new List<Pet> { barley, boots, whiskers, daisy };
List<Pet> pets = new List<Pet>();
// Create a list of Person-Pet pairs where
// each element is an anonymous type that contains a
// Pet's name and the name of the Person that owns the Pet.
var query =
people.Join(pets,
person => person,
pet => pet.Owner,
(person, pet) =>
new { OwnerName = person.Name, Pet = pet.Name }).ToList();
wohoo :) Genau wonach ich gesucht habe! – Ekaterina
Ich wusste nicht, dass Sie .ToList() erhalten können, indem Sie Klammern um die Abfrage-Methode setzen, danke! – Haroon
Bitte rufen Sie nicht die LINQ-deklarative Abfragesyntax "LINQ-Syntax" auf. Sie sind beide "LINQ-Syntax". Die richtige Bezeichnung lautet "Abfragesyntax" vs "Method Syntax". http://msdn.microsoft.com/en-us/library/bb397947.aspx – Pluc