ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ в LINQC#

Место общения программистов C#
Ответить
Anonymous
 ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ в LINQ

Сообщение Anonymous »

Как выполнить левое внешнее соединение в C# LINQ с объектами без использования предложений соединения по принципу равенства? Есть ли способ сделать это с помощью предложенияwhere?
Правильная проблема:
Для внутреннего соединения это просто, и у меня есть такое решение
List 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; }


Подробнее здесь: https://stackoverflow.com/questions/340 ... in-in-linq
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»