Как выполнить левое внешнее соединение в С# LINQ с объектами без использования предложений join-on-equals-into
? Есть ли способ сделать это с помощью предложения where
?
Правильная проблема:
Для внутреннего соединения легко, и у меня есть решение, подобное этому
List<JoinPair> innerFinal = (from l in lefts from r in rights where l.Key == r.Key
select new JoinPair { LeftId = l.Id, RightId = r.Id})
но для левого внешнего соединения мне нужно решение. Шахта - это что-то вроде этого, но оно не работает.
List< JoinPair> leftFinal = (from l in lefts from r in rights
select new JoinPair {
LeftId = l.Id,
RightId = ((l.Key==r.Key) ? r.Id : 0
})
где JoinPair - это класс:
public class JoinPair { long leftId; long rightId; }