【发布时间】:2016-03-01 21:26:59
【问题描述】:
我有 2 个相同类型的列表。左侧列表:
var leftList = new List<Person>();
leftList.Add(new Person {Id = 1, Name = "John", Changed = false});
leftList.Add(new Person {Id = 2, Name = "Alice", Changed = false});
leftList.Add(new Person {Id = 3, Name = "Mike", Changed = false});
以及正确的列表:
var rightList = new List<Person>();
rightList.Add(new Person {Id = 1, Name = "John", Changed = false});
rightList.Add(new Person {Id = 3, Name = "Mike", Changed = true});
rightList.Add(new Person {Id = 4, Name = "Joshi", Changed = true});
我想做一个左连接,但使用右的Changed属性值。像这样:
{Id = 1, Name = "John", Changed = false}
{Id = 2, Name = "Alice", Changed = false}
{Id = 3, Name = "Mike", Changed = true} // <-- true from the rightList
为此,我不能使用简单的Left Join,也不能使用Concat with GroupBy。
我怎样才能用 linq 做到这一点?谢谢。
【问题讨论】: