Esempio n. 1
0
 public static void Sort(Person[] ps, MyCompareHandler compare)
 {
     if (compare == null)
     {
         return;
     }
     for (int i = 0; i < ps.Length - 1; i++)
     {
         for (int j = 0; j < ps.Length - i - 1; j++)
         {
             if (compare(ps[j], ps[j + 1]) > 0)
             {
                 Person pTemp = ps[j];
                 ps[j]     = ps[j + 1];
                 ps[j + 1] = pTemp;
             }
         }
     }
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            MyCompareHandler MyCompare = null;

            Person[] ps =
            {
                new Person()
                {
                    Age = 10, Name = "赵晓虎", Sex = '男'
                },
                new Person()
                {
                    Age = 30, Name = "波波", Sex = '男'
                },
                new Person()
                {
                    Age = 35, Name = "杨茜", Sex = '女'
                },
                new Person()
                {
                    Age = 13, Name = "马伦", Sex = '男'
                }
            };
            // 排序
            // 比较
            // int n = string.Compare("a", "b");
            // MyCompare = CompareByAge;
            //MyCompare = CompareByName;

            //if (MyCompare != null)
            //{
            //    int num = MyCompare(ps[0], ps[1]);
            //}

            // MyCompareHandler compare = CompareByAge;

            // Sort(ps, compare);

            // Sort(ps, CompareByName);

            Sort(ps, (a, b) => string.Compare(a.Name, b.Name));
            Sort(ps, (a, b) => a.Age - b.Age);
        }