我试图通过属性price_GT使用委托来制作一个通用排序函数来对我的类 - “GiaoTrinh”进行排序。在GiaoTrinh类我创建了一个函数,调用CheckPrice比较对象之间的价格。在类ListGiaoTrinh我创建了一个委托和函数GenericSort参数是List<object>
。当我调用GenericSort
函数时,错误是:
“无法从
Generic.List<GiaoTrinh>
转换为Generic.List<object>
。
我该如何解决呢?
class GiaoTrinh:IGiaoTrinh
{
private int id_GT;
private string name_GT;
private string tacGia;
private int namXuatBan;
private double price_GT;
public static bool CheckPrice(object a,object b)
{
if (((GiaoTrinh)a).Price_GT < ((GiaoTrinh)b).Price_GT)
return true;
else
return false;
}
}
ListGiaoTrinh类中的代码:
class ListGiaoTrinh:IListGiaoTrinh
{
public delegate bool compare(object o1, object o2);
public static void GenericSort(List<object>obj, compare cmp)
{
for (int i = 0; i < obj.Count - 1; i++)
for (int j = i + 1; j < obj.Count; j++)
{
if (cmp(obj[i], obj[j]))
{
object temp;
temp = obj[i];
obj[i] = obj[j];
obj[j] = temp;
}
}
}
private List<GiaoTrinh> listGiaoTrinh;
public void Sort()
{
GenericSort(this.listGiaoTrinh, GiaoTrinh.CheckPrice);
Show();
}
}