-1

我正在使用 intersect 与列表进行比较,如下所示:(以 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 命令运行时,它什么也没带来。
我假设该程序没有通过我的比较器,因为在那里我的断点没有停止。

知道我在做什么错吗?

4

1 回答 1

3

尝试遍历结果列表。如果 Intersect 使用 yield return 机制,它只会在结果 IEnumerable 被迭代时才开始比较。

于 2012-11-12T11:51:23.303 回答