//private static int GetMax(int[] arr) //{ // int max = arr[0]; // for (int i = 0; i < arr.Length; i++) // { // if (arr[i] > max) // { // max = arr[i]; // } // } // return max; //} //private static Person GetMax(Person[] pers) //{ // Person maxAgePerson = pers[0]; // for (int i = 0; i < pers.Length; i++) // { // if (pers[i].Age > maxAgePerson.Age) // { // maxAgePerson = pers[i]; // } // } // return maxAgePerson; //} #endregion 获取最大值 public void Invoke() { //获取最大整数 DelGetMax <int> del1 = CompareInt; int[] arr = { 12, 11, 3, 6, 45, 38, 26 }; Console.WriteLine(GetMax <int>(arr, del1)); //获取最大年龄的人 DelGetMax <Person> del2 = ComparePer; Person[] pers = { new Person { Name = "A", Age = 12 }, new Person { Name = "B", Age = 18 }, new Person { Name = "C", Age = 16 } }; Console.WriteLine(GetMax <Person>(pers, del2).Name); //获取最唱的字符串函数 DelGetMax <string> del3 = CompareString; string[] strs = { "sas", "gdfht", "jgfj", "jygfgfgfgfudhgd", "hgdfhrtdydtry" }; Console.WriteLine(GetMax <string>(strs, del3)); }
static object GetMax(object[] obj, DelGetMax del) { object max = obj[0]; for (int i = 0; i < obj.Length; i++) { if (del(max, obj[i]) < 0) { max = obj[i]; } } return(max); }
private static T GetMax <T>(T[] arr, DelGetMax <T> del) { T max = arr[0]; for (int i = 0; i < arr.Length; i++) { if (del(arr[i], max) == 1) { max = arr[i]; } } return(max); }