using System;
using System.Collections.Generic;
namespace TT
{
class BubleSorter{
public static void Sort<T>(IList<T> array,Func<T,T,bool> compare){
bool swapped = true;
do{
swapped = false;
for(int i = 0;i<array.Count - 1;i++){
if(compare(array[i+1],array[i])){
T temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
swapped = true;
}
}
}while(swapped);
}
}
class Item{
public int id {
get;
private set;
}
public Item(int id){
this.id = id;
}
public override string ToString(){
return string.Format("物品的唯一标识为{0}。",id);
}
public static bool CompareID(Item t1,Item t2){
return t1.id < t2.id;
}
}
class Program{
static void Main(String[] args){
Item[] tt = {
new Item(100),
new Item(10),
new Item(1),
new Item(-1),
};
BubleSorter.Sort(tt,Item.CompareID);
foreach(var ts in tt){
Console.WriteLine(ts.ToString());
}
}
}
}
Func的返回值不能为空?