Tôi có một danh sách các đối tượng xeDanh sách <T> .Contains() Tìm các mục phù hợp như thế nào?
List<Car> cars = GetMyListOfCars();
và tôi muốn để xem nếu một chiếc xe nằm trong danh sách
if (cars.Contains(myCar))
{
}
những gì hiện Chứa Dùng để tìm ra nếu myCar có trong danh sách. Nó có làm một "ToString()" trên đối tượng xe hơi của tôi không. Nó có sử dụng phương thức Equals(), gethashcode() không?
Tôi thấy tôi có thể vượt qua trong IEqualityComparer của riêng mình để buộc thực hiện của riêng tôi nhưng chỉ muốn hiểu những gì nó làm theo mặc định.
ToString trả về tên của loại khi không ghi đè nên nó sẽ không thể là một cách tốt để so sánh các mặt hàng :) –
Bằng cách này, bạn không thể vượt qua của riêng bạn 'IEqualityComparer' vào 'Danh sách .Contains'. Bạn * có thể * vượt qua so sánh của riêng bạn vào phương pháp mở rộng 'Contains' của LINQ, hoạt động khá vui vẻ với' List '. –
LukeH