我寫了下面的類,它實現的IComparer:的Array.Sort使用自定義的IComparer接口
class CustomComparer : IComparer<string>
{
public int Compare(string x, string y)
{
int intX;
int intY;
if (int.TryParse(x, out intX) && int.TryParse(y, out intY)) //both numbers
{
intX.CompareTo(intY);
}
else if (!int.TryParse(x, out intX) && !int.TryParse(y, out intY)) //both letters
{
x.CompareTo(y);
}
else if (!int.TryParse(x, out intX) && int.TryParse(y, out intY)) //first is a letter, second a number
{
return -1;
}
else if (int.TryParse(x, out intX) && !int.TryParse(y, out intY)) //first is a number, second is a letter
{
return 1;
}
return 0;
}
}
我不知道我是否做了一切權利,但我目前無法調用它。在我的程序中我有一個ArrayList,我試圖稱之爲:
CustomComparer c = new CustomComparer()
myArrayList.Sort(c);
我在做什麼錯?
這似乎有它的工作。謝謝! – blawford