-1

次のように交差を使用してリストと比較しています:(例として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 に答える