I have 2 lists of the same type. The left list:
var leftList = new List();
leftList.Add(new Person {Id = 1, Name = \"John\", Chang
Another way to do it would be:
//Step 1: Merge the lists while selecting the matching objects from rightList using Last()
var mergedList = leftList.Concat(rightList)
.GroupBy(x => x.Id)
.Select(x => x.Last());
//Step 2: Do a inner join between mergedList and leftList to get a left join result as originally required.
var innerJoinQuery = from mPerson in mergedList
join leftPerson in leftList on mPerson.Id equals leftPerson.Id
select new { Id = leftPerson.Id, Name = mPerson.Name, Changed = mPerson.Changed };