列表顺序问题

本文关键字:问题 顺序 列表 | 更新日期: 2023-09-27 18:02:32

我试图自己处理gridview排序。我看不懂这个

protected void gvPackages_Sorting(object sender, GridViewSortEventArgs e)
    {
    List<Package> pck = new List<Package>();
    pck = Session["Packages"] as List<Package>;
    var output = (from p in pck
                  orderby p.Department
                  select p);        <-line that breaks
    // var output = pck.OrderBy(x => x.Department).ToList(); <- I've also tried this
    gvPackages.DataSource = output;
    gvPackages.DataBind();
    }

得到的错误是:

至少有一个对象必须实现IComparable

Package是一个实体,所以我不明白我错过了什么。我在网上找到的其他例子也反映了我上面提到的内容,以及它的各种迭代。我错过了什么?我还想说的是,Department只是一个字段,作为测试,它将在最终版本中更加动态。

编辑:再次感谢stack,我是个大傻瓜。

列表顺序问题

问题是您正在尝试订购部门,但部门类型不知道应该如何订购,因为您没有实现IComparable,这需要指定顺序的方法,例如orderderby department . name或department . location, department . size,谁知道?

无论Department的类型是什么,它都不实现IComparable。它可能是一个对象/实体/DataRow类型。

您要按ID、名称、…排序吗?div ?