public SetCustom SymmetricExceptWith(SetCustom other) { SetCustom union = Union(other); SetCustom intersect = IntersectWith(other); return(union.ExceptWith(intersect)); }
static void Print(SetCustom customSet) { foreach (var item in customSet) { Console.Write("{0} ", item); } Console.WriteLine(); }
public SetCustom ExceptWith(SetCustom other) { SetCustom result = new SetCustom(_items); foreach (var item in other) { result.Remove(item); } return(result); }
public SetCustom IntersectWith(SetCustom other) { SetCustom result = new SetCustom(); foreach (var item in _items) { if (other.Contains(item)) { result.Add(item); } } return(result); }
//Deleting elements from the Set - see above (Method Remove) //Determining the existance of the element in the Set - see above (Method Contains) //Number of elements in the Set - see above (Property Count) //Enumerator - see above (Method GetEnumerator) #region Method Union - unions two sets public SetCustom Union(SetCustom other) { SetCustom result = new SetCustom(_items); foreach (var item in other) { if (!Contains(item)) { result.Add(item); } } return(result); }
public bool Subset(SetCustom other) { SetCustom result = new SetCustom(_items); foreach (var item in other._items) { result.Remove(item); } if (result == null) { return(true); } else { return(false); } }
static void Main(string[] args) { SetCustom set1 = new SetCustom(); SetCustom set2 = new SetCustom(); SetCustom set3 = new SetCustom(); set1.Add("John"); set1.Add("Mark"); set1.Add("Fred"); set1.Add("Julie"); set1.Add(1); set1.Add(2); set1.Add(3); set1.Add(4); set1.Add(5); Console.WriteLine(new string('-', 60)); int [] array = { 4, 5, 6, 7 }; set2.AddRange(array); set2.Add("Mark"); set2.Add("Fred"); set2.Add("James"); Console.WriteLine(new string('-', 60)); //Union Console.Write("\nPrinting the set1: "); Print(set1); Console.Write("\nPrinting the set2: "); Print(set2); Console.WriteLine("Union:"); set3 = set1.Union(set2); Print(set3); //Difference Console.WriteLine(new string('-', 60)); Console.Write("\nPrinting the set1: "); Print(set1); Console.Write("\nPrinting the set2: "); Print(set2); Console.WriteLine("Difference:"); set3 = set1.ExceptWith(set2); Console.Write("\nPrinting the set3: "); Print(set3); //Intersection Console.WriteLine(new string('-', 60)); Console.Write("\nset1: "); Print(set1); Console.Write("\nset2: "); Print(set2); Console.WriteLine("Intersection:"); set3 = set1.IntersectWith(set2); Console.Write("\nset3: "); Print(set3); //Symmetric Difference Console.WriteLine(new string('-', 60)); Console.Write("\nset1: "); Print(set1); Console.Write("\nset2: "); Print(set2); Console.WriteLine("Symmetric Difference:"); set3 = set1.SymmetricExceptWith(set2); Console.Write("\nset3: "); Print(set3); //Subset? Console.WriteLine(new string('-', 60)); Console.Write("\nset1: "); Print(set1); Console.Write("\nset2: "); Print(set2); Console.WriteLine("Is the set1 a subset of set2?: {0}", set1.Subset(set2)); }