记录一下方便查看。
View Code
using System; using System.Collections.Generic; namespace IComparerDemo { class Program { class Employee { public string Name; public int Age; public Employee(string name, int age) { Name = name; Age = age; } public override string ToString() { return Name + ":" + Age + "岁。"; } } class AgeSortAsc : IComparer<Employee> { #region IComparer<Student> 成员 public int Compare(Employee x, Employee y) { if (x.Age > y.Age) { return 1; } else if (x.Age == y.Age) { return 0; } else { return -1; } } #endregion } class NameSortDesc : IComparer<Employee> { #region IComparer<Student> 成员 public int Compare(Employee x, Employee y) { return -1 * x.Name.CompareTo(y.Name); } #endregion } static void Main(string[] args) { List<Employee> list = new List<Employee>(); list.Add(new Employee("张三", 19)); list.Add(new Employee("李四", 18)); list.Add(new Employee("王五", 20)); ShowList(list); Console.WriteLine("按年龄升序!"); list.Sort(new AgeSortAsc()); ShowList(list); Console.WriteLine("按姓名倒序!"); list.Sort(new NameSortDesc()); ShowList(list); } static void ShowList(List<Employee> list) { Console.WriteLine("[------------------"); foreach (var s in list) { Console.WriteLine(s); } Console.WriteLine("]------------------"); } } }
结果如下:
[------------------
张三:19岁。
李四:18岁。
王五:20岁。
]------------------
按年龄升序!
[------------------
李四:18岁。
张三:19岁。
王五:20岁。
]------------------
按姓名倒序!
[------------------
张三:19岁。
王五:20岁。
李四:18岁。
]------------------
请按任意键继续. . .