using System; using Ilog.Language.Util; public class HashSetTest { public static void Main () { HashSet A = new HashSet(); A.Add("a"); A.Add("b"); A.Add("c"); A.Add("d"); A.Add("a"); A.Add("b"); A.Add("c"); A.Add("d"); // same on purpose A.Add("e"); A.Add("f"); A.Add("g"); A.Add("h"); A.Add("i"); A.Add("j"); A.Add("k"); A.Add("l"); Console.WriteLine("There are {0} elements in set A:",A.Count); Console.WriteLine("A = {0}",A); if (A["a"]) Console.WriteLine("a belongs to A"); if (!A["x"]) Console.WriteLine("x does not belong to A"); A["x"] = true; Console.WriteLine("A = {0}",A); A["x"] = false; Console.WriteLine("A = {0}",A); A.Remove("e"); A.Remove("f"); A.Remove("g"); A.Remove("h"); A.Remove("e"); A.Remove("f"); A.Remove("g"); A.Remove("h"); // same on purpose Console.WriteLine("There are {0} elements in set A:",A.Count); Console.WriteLine("A = {0}",A); HashSet B = new HashSet(); B.Add("a"); B.Add("b"); B.Add("c"); B.Add("d"); Console.WriteLine("There are {0} elements in set B:",B.Count); Console.WriteLine("B = {0}",B); if (A.Equals(B)) Console.WriteLine("A and B are equal sets"); else Console.WriteLine("A and B are NOT equal sets"); if (A <= B) Console.WriteLine("Set A is a subset of set B"); else Console.WriteLine("Set A is NOT a subset of set B"); if (A < B) Console.WriteLine("Set A is a STRICT subset of set B"); else Console.WriteLine("Set A is NOT a STRICT subset of set B"); if (B <= A) Console.WriteLine("Set B is a subset of set A"); else Console.WriteLine("Set B is NOT a subset of set A"); if (B < A) Console.WriteLine("Set B is a STRICT subset of set A"); else Console.WriteLine("Set B is NOT a STRICT subset of set A"); A.Remove("i"); A.Remove("k"); A.Remove("j"); A.Remove("l"); Console.WriteLine("There are {0} elements in set A:",A.Count); Console.WriteLine("A = {0}",A); if (A.Equals(B)) Console.WriteLine("A and B are equal sets"); else Console.WriteLine("A and B are NOT equal sets"); A.Clear(); Console.WriteLine("There are {0} elements in set A:",A.Count); Console.WriteLine(A); B.Clear(); A.Add(1); A.Add(2); A.Add(3); A.Add(4); A.Add(5); A.Add(6); B.Add(1); B.Add(7); B.Add(3); B.Add(8); B.Add(5); B.Add(9); Console.WriteLine("A = {0}",A); Console.WriteLine("B = {0}",B); Console.WriteLine("A+B = {0}",A+B); Console.WriteLine("A&B = {0}",A&B); Console.WriteLine("A-B = {0}",A-B); Console.WriteLine("A^B = {0}",A^B); Console.WriteLine("A = {0}",A); Console.WriteLine("B = {0}",B); A += B; Console.WriteLine("After A += B, A = {0}",A); A &= B; Console.WriteLine("After A &= B, A = {0}",A); A.Clear(); B.Clear(); A.Add(1); A.Add(2); A.Add(3); A.Add(4); A.Add(5); A.Add(6); B.Add(1); B.Add(7); B.Add(3); B.Add(8); B.Add(5); B.Add(9); Console.WriteLine("A = {0}",A); Console.WriteLine("B = {0}",B); A.Union(B); Console.WriteLine("After A.Union(B), A = {0}",A); A.Intersection(B); Console.WriteLine("After A.Intersection(B), A = {0}",A); } }