public static bool Contains <TSource> ( this IReadOnlyFiniteSet <TSource> source, TSource value, IEqualityComparer <TSource> notUsed = null) { if (source == null) { throw new ArgumentNullException("source"); } Contract.EndContractBlock(); return(source.Contains(value)); }
public static IReadOnlyFiniteSet <TSource> Except <TSource> ( this IReadOnlyFiniteSet <TSource> first, IReadOnlyFiniteSet <TSource> second, IEqualityComparer <TSource> notUsed = null) { if (first == null) { throw new ArgumentNullException("first"); } if (second == null) { throw new ArgumentNullException("second"); } Contract.EndContractBlock(); if ((first.Count < 1) || (second.Count < 1)) { return(first); } if (first == second) { return(ReadOnlyList.EmptyReadOnlyList <TSource> .GetInstance()); } // заранее считаем количество элементов int count = first.Count; if (first.Count < second.Count) { foreach (var item in first) { if (second.Contains(item)) { count--; } } } else { foreach (var item in second) { if (first.Contains(item)) { count--; } } } return(new ExceptReadOnlyFiniteSet <TSource> (first, second, count)); }
public bool Contains(TSource item) { return(_first.Contains(item) || _second.Contains(item)); }
public bool Contains(TSource item) { return(_source.Contains(item)); }