我使用intersect比较list,如下所示: (以POCO Car为例)
IEnumerable<Car> updatedCars = CarsList.Intersect(dbCarsList, carsComperator);
我将carsComperator定义如下
public bool Equals(Car x, Car y)
{
if (object.ReferenceEquals(x, y)) return true;
if (x == null || y == null) return false;
return (x.Id == y.Id);
}
public int GetHashCode(Car car)
{
return car.Id.GetHashCode(); // Id is Guid
}
但是当Intersect命令运行时,它什么也没带来 我假设程序没有通过我的比较器,因为那里的断点没有停止。
知道我做错了什么?
答案 0 :(得分:3)
尝试遍历结果列表。如果Intersect使用yield return机制,它将仅在迭代生成IEnumerable时启动比较。