Даже если Вы вполне уверены, там будет только одним конкретным типом объекта модели, использование интерфейсов делает насмешку и тестирование несколько легче (но в эти дни существуют framworks, которые могут помочь Вам генерировать ложные классы автоматически, даже для конкретных классов Java - Mockito, JTestR, Spring, Groovy...)
, Но я еще чаще использую интерфейсы для сервисов, так как еще более важно дразнить далеко их во время тестирования, и программирование против интерфейсов помогает Вам думать о материале как инкапсуляция.
Можно использовать Кроме :
List<car> list1 = GetTheList();
List<car> list2 = GetSomeOtherList();
List<car> result = list2.Except(list1).ToList();