public void Difference(SetOnArray otherSet)
        {
            if (otherSet == null)
            {
                throw new Exception("Множество не должен быть пустым");
            }

            foreach (var item in otherSet.Items)
            {
                Remove(item);
            }
        }
        public void Union(SetOnArray otherSet)
        {
            if (otherSet == null)
            {
                throw new Exception("Множество не должен быть пустым");
            }

            foreach (var item in otherSet.Items)
            {
                Add(item);
            }
        }
Example #3
0
        static void Main(string[] args)
        {
            var line = Console.ReadLine().Split();

            var set = new SetOnArray();

            foreach (var item in line)
            {
                set.Add(int.Parse(item));
            }

            int beforeLength  = set.Items.Count;
            var beforePrinted = set.Print();


            line = Console.ReadLine().Split();

            var otherSet = new SetOnArray();

            foreach (var item in line)
            {
                otherSet.Add(int.Parse(item));
            }

            bool isSubset = set.IsSubset(otherSet);

            if (isSubset)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }

            int afterLength = set.Items.Count;

            if (beforeLength != afterLength)
            {
                throw new Exception("Метод \"IsSubset\" изменяет кол-во элементов");
            }

            var afterPrinted = set.Print();

            if (beforePrinted != afterPrinted)
            {
                throw new Exception("Метод \"IsSubset\" изменяет элементы множества");
            }
        }
        public bool IsSubset(SetOnArray otherSet)
        {
            if (Items.Count < otherSet.Items.Count)
            {
                return(false);
            }

            var newSet = new SetOnArray();

            foreach (var item in Items)
            {
                newSet.Add(item);
            }
            newSet.Difference(otherSet);
            return(newSet.Empty());
        }
        public void Intersect(SetOnArray otherSet)
        {
            if (otherSet == null)
            {
                throw new Exception("Множество не должен быть пустым");
            }

            List <int> forRemoveItems = new List <int>();

            foreach (var item in Items)
            {
                if (!otherSet.Items.Contains((item)))
                {
                    forRemoveItems.Add(item);
                }
            }

            foreach (var removeItem in forRemoveItems)
            {
                Remove(removeItem);
            }
        }