0

ネストされた型ProductFeatureとして宣言されたメンバーを持つクラスProductがあるとします。

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>:

今、あなたはいくつかをフィルタリングして適用したいと思いOrderByますThenBy

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

IEnumerable<T>ソートされた結果は、およびとして扱うことができますIOrderedEnumerable<T>

問題は、またはに変換しようとしたときsortedです。PagedList<Product>List<Product>

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

もう一度変換する方法はsortedありますか?List

4

1 に答える 1

3

最初の問題は、Product.ProductNameとが実装されていないProduct.ProductIDインスタンスであるため、の結果を列挙しようとすると失敗することです。これは明らかに例外メッセージがあなたに伝えていることです。ProductFeatureIComparableOrderByThenBysorted

sorted2番目の問題は、「に戻す」と言ったときに「変換する」とはどういう意味かを教えてくれなかったことPagedList<Product>ですList<Product>ProductNameただし、実際には、を実装するものを作成してProductIDインスタンス化することで、あなたが意味することは何でも解決されると思いますIComparable

于 2011-04-22T13:24:01.013 に答える