首先定义比较类 继承自IComparer<Racer>

 1 public class RacerComparer : IComparer<Racer>
 2     {
 3         public enum CompareType
 4         {
 5             FirstName, LastName, Country, Wins
 6         }
 7         private CompareType compareType;
 8         public RacerComparer(CompareType compareType)
 9         {
10             this.compareType = compareType;
11         }
12         public int Compare(Racer x, Racer y)
13         {
14             if (x == null && y == null) return 0;
15             if (x == null) return -1;
16             if (y == null) return 1;
17 
18             int result;
19             switch (compareType)
20             {
21                 case CompareType.FirstName:
22                     return string.Compare(x.FirstName, y.FirstName);
23                 case CompareType.LastName:
24                     return string.Compare(x.LastName, y.LastName);
25                 case CompareType.Country:
26                     result = string.Compare(x.Country, y.Country);
27                     if (result == 0)
28                         return string.Compare(x.LastName, y.LastName);
29                     else
30                         return result;
31                 case CompareType.Wins:
32                     return x.Wins.CompareTo(y.Wins);
33                 default:
34                     throw new ArgumentException("Invalid Compare Type");
35             }
36         }
37     }
View Code

相关文章: