Итак, следующие списки:
Код: Выделить всё
ID FirstName
-- ---------
1 John
2 Sue
ID LastName
-- --------
1 Doe
3 Smith
Код: Выделить всё
ID FirstName LastName
-- --------- --------
1 John Doe
2 Sue
3 Smith
Мои попытки пока выглядят примерно так:
Код: Выделить всё
private void OuterJoinTest()
{
List firstNames = new List();
firstNames.Add(new FirstName { ID = 1, Name = "John" });
firstNames.Add(new FirstName { ID = 2, Name = "Sue" });
List lastNames = new List();
lastNames.Add(new LastName { ID = 1, Name = "Doe" });
lastNames.Add(new LastName { ID = 3, Name = "Smith" });
var outerJoin = from first in firstNames
join last in lastNames
on first.ID equals last.ID
into temp
from last in temp.DefaultIfEmpty()
select new
{
id = first != null ? first.ID : last.ID,
firstname = first != null ? first.Name : string.Empty,
surname = last != null ? last.Name : string.Empty
};
}
}
public class FirstName
{
public int ID;
public string Name;
}
public class LastName
{
public int ID;
public string Name;
}
Код: Выделить всё
ID FirstName LastName
-- --------- --------
1 John Doe
2 Sue
Подробнее здесь: https://stackoverflow.com/questions/548 ... outer-join