很长世间没研究编程。Array.Sort(numbers); 是快捷的排序方法 ,默认是从小到大排序
using System.Collections.Generic; 加上这个空间才可以使用数组 List
static void Main(string[] args)
{
int[] numbers = new int[10];
Random rnd = new Random();
for (int i = 0; i < 10; i++)
{
numbers[i] = rnd.Next(100);//我们用随机数来增加练习的有趣性
}
Console.WriteLine("初始化:");
Display(numbers);
Console.WriteLine("排序后:");
Array.Sort(numbers);
Display(numbers);
Console.Read();
}
static void Display(int[] numbers)
{
foreach (var item in numbers)
{
Console.Write(item + ",");
}
Console.WriteLine();
}
结果是 初始化 17 19 96 98 15 16 25
排序后结果是 15 16 17 19 25 96 98
你看到,它很方便地进行了排序。默认情况下是升序的。那么如何让他按照降序排列呢?
class IntComparer : IComparer<int>
{
#region IComparer<int> 成员
public int Compare(int x, int y)
{
if (_type == "DESC")
return y.CompareTo(x);//我们这里正好让它反过来,就实现了降序了
else
return x.CompareTo(y);
}
#endregion
private string _type = "ASC";
public IntComparer(string type)
{
_type = type;
}
}
然后,在调用代码中
Console.WriteLine("初始化:");
Display(numbers);
Console.WriteLine("排序后:");
Array.Sort(numbers, new IntComparer("DESC"));