2016-08-14 10 views
0

私はpublic List<string> subCat { get; set; }を持つCategoryクラスでこのソートリスト<> ORDERBYリスト<string>数

List<Category> list = Category.getCategoryList(); 

のようなリストを持って、いくつかのカテゴリーがSUBCATを持っているし、いくつかは、私はSUBCATによって私のリストを注文したい必要はありません。 subCatのカテゴリが最初に来ます。 は、私は、これはcatName

List<Category> SortedList = list.OrderBy(o => o.catName).ToList(); 

でソートされますことを知ってどのようにソートIリストでSUBCATありSUBCATによってすることができます。 助けが必要です。

答えて

1

あなたはより多くの子供を持つ最初のカテゴリがありますので、あなたは、サブカテゴリの数で並べ替えることができます。あなたは、カテゴリ名で注文し、最初のサブカテゴリにカテゴリを表示したい場合は、ThenByを使用することができます

var sorted = list.OrderByDescending(o => o.subCat != null ? o.subCat.Count : 0).ToList(); 

を:

var sorted = list 
       .OrderBy(o => o.subCat != null && o.subCat.Count > 0 ? 0 : 1) 
       .ThenBy(o => o.catName) 
       .ToList(); 
1

あなたはサブカテゴリーが発注述語に使用Any方法の有無でソートしたい場合:

//will order by the boolean value - due to the descending first the "true" and then "false" 
var result = OrderByDescending(item => item.SubCat.Any()); 

あなたは合計カテゴリの量だけ注文したい場合は、次のいくつかのプロパティThenByを使用することにより、ご注文は

var result = OrderByDescending(item => item.SubCat.Count()); 

関連する問題