list sort()給自定義對象排序

自定義對象User ,給List<User> 集合按年齡大小排序。


public class User
    {
        public User(int age, string name)
        {
            Age = age;
            Name = name;
        }
        public int Age { get; set; }
        public string Name { get; set; }
    }

這裏我們需要一個自定義的比較器


 public static int CompareByAge(User x, User y)//從大到小排序器
        {
            if (x == null)
            {
                if (y == null)
                {
                    return 0;
                }

                return 1;

            }
            if (y == null)
            {
                return -1;
            }
            int retval = y.Age.CompareTo(x.Age);
            return retval;
        }

然後就可以使用List<T>.sort(CompareByAge)來排序了


  List<User> list = new List<User>
            {
                new User(14,"aa"),
            new User(17,"bb"),
            new  User(12,"cc"),new User(33,"dd")
            };
            foreach (var item in list)
            {
                Console.WriteLine(item.Name + ":" + item.Age);
            }
            Console.WriteLine("排序後");
            list.Sort(CompareByAge);
            foreach (var item in list)
            {
                Console.WriteLine(item.Name+":"+item.Age);
            }

            Console.ReadKey();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章