同じ Item を返す 2 つのリストがあります。
最初のリストでは 0、2 番目のリストでは 1<foo>
の妥当性があります。最初のリストでフィルタリングを行い、2 番目のリストの項目をページネーションによって制限された結果に追加する必要があります。orderType
基本的にこれは私の最終的なクエリです:
var listFoo= QueryList1.Concat(QueryList2); //(IQueriable)
List<foo> listFoo =listFoo.OrderByDescending(r => r.ID)
.ThenBy(d =>d.orderType)
.Skip((currentPageIndex - 1) * pageSize)
.Take(pageSize)
.ToList();
リスト 1 がメイン アイテムとして機能し、リスト 2 が最初のリストの詳細として機能するため、これはうまく機能します。また、フィルターは最初のリストでのみ機能するはずです。しかし、ここで問題が発生します。2 番目のリストを日付だけで並べ替えるにはどうすればよいですか。日付順に詳細をリストする必要があります。基本的に私は次のようなものが必要です:
List<foo> listFoo =listFoo.OrderByDescending(r => r.ID)
.ThenBy(d =>d.orderType)
.ThenBy(x=>(x.ordertype==1)?x.Date)
.Skip((currentPageIndex - 1) * pageSize)
.Take(pageSize)
.ToList();
編集 :
List 1 :
id =1,ordertype=0,Date = new DateTime(1950,1,4), [0]
id =2,ordertype=0,Date = new DateTime(1950,2,1) [1]
List 2 :
id =1,ordertype=1,Date = new DateTime(1950,1,5), [2]
id =1,ordertype=1,Date = new DateTime(1950,1,2), [3]
id =1,ordertype=1,Date = new DateTime(1950,1,3), [4]
id =1,ordertype=1,Date = new DateTime(1950,1,4) [5]
This should be ordered as follows :
[0],[3],[4],[5],[2],[1]