通用排序函数失败,“无法从List <book>转换为List <object>”

时间:2018-02-03 06:14:56

标签: c#

我试图通过属性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();
    }
}

0 个答案:

没有答案