我们平时对值类型的array list 进行排序,只需要借助排序算法排序即可(冒泡,快速,希尔等等)。而对于引用类型需要借助IComparable接口里的CompareTo自行书写一个比较器。
public delegate TKey SortHandler<T, TKey>(T t);
static public void OrderBy<T,TKey>( T[] array, SortHandler<T, TKey> sortHandler) where TKey : IComparable<TKey>
//使用此方法时,比较的属性需要实现了Icomparable接口
{
//这里使用的是冒泡排序,还可以使用其他的排序方式
for (int i = 0; i < array.Length; i++)
{
for (int j = i + 1; j < array.Length; j++)
{
if (sortHandler(array[i]).CompareTo(sortHandler(array[j])) > 0)
{
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}