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); } }
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); } }