特定の日付の間に無料で予約できるVehicleオブジェクトのリストを返すことができるようにしたいと思います。
その日の間にデータベースに現在存在する予約のリストを返すメソッドがあり、各予約には関連する車両オブジェクトがあるため、利用できないすべての車両を知っています。
データベース内のすべての車両のリストを返す別のメソッドがありますが、Booking.Vehicleをリストから返されたVehicleオブジェクトと比較する方法が必要です。
私はこれを試しました
foreach(var booking in bookings)
{
allVehicles.Remove(booking.Vehicle)
}
しかし、車両は削除されません。オブジェクトが正しく比較されないのはなぜですか?同じ車両オブジェクトが削除されているにもかかわらず。
//Testing to see if the objects compare as expected (they don't)
public static List<Vehicle> AvaliableVehiclesBetween(DateTime StartDate, DateTime EndDate)
{
List<Booking> bookings = Booking.BookingsBetween(StartDate, EndDate);
List<Vehicle> vehicles = AllVehicles();
Vehicle v = vehicles[0];
if(bookings[0].Vehicle.Equals(v)) {
vehicles = null;
}
return vehicles;
}
これを実行した後、車両はnullに等しくなりません。