using System; class MyClass : IComparable { public int val; public MyClass(int x) { val = x; } public int CompareTo(object obj) { return val - ((MyClass) obj).val; } } class CompareDemo { public static bool contains<T>(T what, T[] obs) where T : IComparable { foreach(T v in obs) if(v.CompareTo(what) == 0) return true; return false; } public static void Main() { int[] nums = { 1, 2, 3, 4, 5 }; if(contains(2, nums)) Console.WriteLine("2 is found."); string[] strs = { "one", "two", "three"}; if(contains("two", strs)) Console.WriteLine("two is found."); MyClass[] mcs = { new MyClass(1), new MyClass(2), new MyClass(3), new MyClass(4) }; if(contains(new MyClass(3), mcs)) Console.WriteLine("MyClass(3) is found."); } }