コード例 #1
0
        //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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }