Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
 public bool Contains(TSource item)
 {
     return(_first.Contains(item) || _second.Contains(item));
 }
Beispiel #4
0
 public bool Contains(TSource item)
 {
     return(_source.Contains(item));
 }