Если я правильно понимаю, это должно сделать это.
Поскольку есть две даты на выбор, я выбрал одну из блистер.
Принимая alist в качестве IEnumerable и blist в качестве IEnumerable
РЕДАКТИРОВАТЬ: Предыдущий ответ был объединен неправильно, что допускает пустые значения для B части объединения Я обновил код, чтобы разрешить null A s вместо
blist
.GroupJoin
(
alist,
tb => tb.UserID,
ta => ta.UserID,
(tb, ta) => new {tb, ta}
)
.SelectMany
(
j => j.ta.DefaultIfEmpty(),
(j, x) =>
new Merge
{
AValue = x.AValue,
BValue = j.tb.BValue,
Date = j.tb.Date,
UserID = j.tb.UserID
}
);