我想知道是否可以使用lambda表达式解决这个问题:
List<Foo> listOne = service.GetListOne();
List<Foo> listTwo = service.GetListTwo();
List<Foo> result = new List<Foo>();
foreach(var one in listOne)
{
foreach(var two in listTwo)
{
if((one.Id == two.Id) && one.someKey != two.someKey)
result.Add(one);
}
}
IEqualityComparer
的方式不是完全对称的话,也会产生影响。 - p.s.w.gIEqualityComparer<T>
是一个接口,而不是委托。我为之前的错误感到抱歉。请查看我的更新答案以获取示例实现。 - p.s.w.gFooComparer
后面错过了<T>
。非常感谢你的帮助! - Johan