0

假设您有一个类 Product,其成员声明为嵌套类型 ProductFeature:

public class Product {
   public ProductFeature ProductID {get;set;}
   public ProductFeature ProductName {get;set;}
}

public class ProductFeature {
   public int FeatureID {get;set;}
   public string FeatureName {get;set;}
}

在某个地方,您有一种方法可以将所有产品加载为PagedList<Product>

var list = db.GetProductList();//returns PagedList<Product>:

现在您要过滤并应用一些OrderByand ThenBy

var sorted = model.Products.OrderBy(x => x.ProductName).ThenBy(x=>x.ProductID);

sorted 的结果可以被视为IEnumerable<T>and IOrderedEnumerable<T>

问题是当我们尝试转换sortedPagedList<Product>, 或List<Product>.

base {System.SystemException}: {"At least one object must implement IComparable."}
Message: "At least one object must implement IComparable."

有什么办法可以再次转换sorted为a List

4

1 回答 1

3

您的第一个问题是Product.ProductNameand是未实现Product.ProductID的实例,因此当您尝试枚举. 这显然是异常消息告诉您的内容。ProductFeatureIComparableOrderByThenBysorted

sorted您的第二个问题是,当您说“转换回PagedList<Product>, 或”时,您没有告诉我们“转换”是什么意思List<Product>。但是,我怀疑您的意思实际上将通过制作ProductNameProductID实例来解决IComparable

于 2011-04-22T13:24:01.013 回答