Ответ 1
Из справочного источника да, но это не так:
public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value) {
ICollection<TSource> collection = source as ICollection<TSource>;
if (collection != null) return collection.Contains(value);
return Contains<TSource>(source, value, null);
}
Если источник перечислит реализует ICollection<T>
(и HashSet<T>
), то он использует метод коллекции Contains
.