Uso de la sintaxis de extensión Estoy intentando crear un left-join usando LINQ en dos listas que tengo. Lo siguiente es de la ayuda de Microsoft pero lo he modificado para mostrar que la lista de mascotas no tiene elementos. Lo que estoy terminando es una lista de 0 elementos. Supongo que esto se debe a que se está produciendo una unión interna. Con lo que quiero terminar es con una lista de 3 elementos (los objetos de 3 personas) con datos nulos completados para los elementos faltantes. es decir, un Left-Join. es posible?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 :) Exactamente lo que estaba buscando! – Ekaterina
No sabía que pudiera obtener .ToList() poniendo corchetes alrededor del método de consulta, ¡gracias! – Haroon
No llame a la sintaxis de consulta declarativa LINQ "Sintaxis LINQ". Ambos son "sintaxis LINQ". La denominación correcta es "Query Syntax" frente a "Method Syntax". http://msdn.microsoft.com/en-us/library/bb397947.aspx – Pluc