static void Main(string[] args) { CSet setA = new CSet(); CSet setB = new CSet(); setA.Add("milk"); setA.Add("eggs"); setA.Add("bacon"); setA.Add("cereal"); setB.Add("bacon"); setB.Add("eggs"); setB.Add("bread"); CSet setC = new CSet(); setC = setA.Union(setB); Console.WriteLine(); Console.WriteLine($"A: {setA.ToString()}"); Console.WriteLine($"B: {setB.ToString()}"); Console.WriteLine($"A union B: {setC.ToString()}"); setC = setA.Intersection(setB); Console.WriteLine($"A intersect B: {setC.ToString()}"); setC = setA.Difference(setB); Console.WriteLine($"A difference B: {setC.ToString()}"); setC = setB.Difference(setA); Console.WriteLine($"B difference A: {setC.ToString()}"); if (setB.Subset(setA)) { Console.WriteLine(" b is a subset of a"); } else { Console.WriteLine(" b is not a subset of a"); } Console.ReadLine(); }
//并集 public CSet Union(CSet aset) { CSet tempSet = new CSet(); foreach (var item in data.Keys) { tempSet.Add(this.data[item]); } foreach (var item in aset.data.Keys) { if (!this.data.ContainsKey(item)) { tempSet.Add(aset.data[item]); } } return(tempSet); }
//差集 public CSet Difference(CSet aSet) { CSet tempSet = new CSet(); foreach (var item in data.Keys) { if (!aSet.data.Contains(item)) { tempSet.Add(data[item]); } } return(tempSet); }
//交集 public CSet Intersection(CSet aSet) { CSet tempSet = new CSet(); foreach (var item in data.Keys) { if (aSet.data.Contains(item)) { tempSet.Add(aSet.data[item]); } } return(tempSet); }