¿Cómo la lista <T> .Contains () encuentra elementos coincidentes?

Tengo una lista de objetos de automóviles

 List<Car> cars = GetMyListOfCars();

y quiero ver si un auto está en la lista

if (cars.Contains(myCar))
{
}

What utiliza Contiene para determinar si myCar está en la lista. ¿Hace un "ToString ()" en el objeto de mi automóvil. ¿Utiliza el método Equals (), gethashcode ()?

Veo que puedo pasar mi propio IEqualityComparer para forzar mi propia implementación, pero solo quería entender lo que hace de forma predeterminada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta