racercomparer.cs
来自「C#高级编程第6版随书源代码 值得下载」· CS 代码 · 共 50 行
CS
50 行
using System;
using System.Collections.Generic;
using System.Text;
namespace Wrox.ProCSharp.Collections
{
public class RacerComparer : IComparer<Racer>
{
public enum CompareType
{
FirstName,
LastName,
Country,
Wins
}
private CompareType compareType;
public RacerComparer(CompareType compareType)
{
this.compareType = compareType;
}
public int Compare(Racer x, Racer y)
{
if (x == null) throw new ArgumentNullException("x");
if (y == null) throw new ArgumentNullException("y");
int result;
switch (compareType)
{
case CompareType.FirstName:
return x.FirstName.CompareTo(y.FirstName);
case CompareType.LastName:
return x.LastName.CompareTo(y.LastName);
case CompareType.Country:
if ((result = x.Country.CompareTo(y.Country)) == 0)
return x.LastName.CompareTo(y.LastName);
else
return result;
case CompareType.Wins:
return x.Wins.CompareTo(y.Wins);
default:
throw new ArgumentException("Invalid Compare Type");
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?