エンティティが好きなエンティティのリストがあります
オファー
Int OfferId
DateTime FromDate
DateTime ToDate
Bool Status
では、List<Offer>
重複OfferId
しています。
Offer1 { Id=1, From=01/01/2011, To=31/01/2011, Status=true }
Offer2 { Id=1, From=01/02/2011, To=28/02/2011, Status=false}
Offer2 { Id=2, From=01/02/2011, To=28/02/2011, Status=false}
Offer3 { Id=3, From=01/01/2011, To=31/01/2011, Status=true }
Offer4 { Id=4, From=01/01/2011, To=31/01/2011, Status=true }
Offer5 { Id=1, From=01/03/2011, To=31/03/2011, Status=false}
私がやろうとしているのは、最も古くて最も頻繁なオファーに関連するオファーのリストを選択することです。
この場合は で一度です。開始日が最も古く、最も頻度が高いためです。
すべての条件を 1 つのコマンドに入れる方法がわかりません。offerId
startdate
offerId=1
01/01/2011
に基づいてレコードをグループ化しましたofferId
が、続行する方法がわかりません
var list = OfferList.GroupBy(a => a.offerId).Select(g => g.Select(s => s));
アップデート
少し混乱しているようです。条件を満たすリストまたはレコードを選択しようとしています。この場合、答えは
Offer1 { Id=1, From=01/01/2011, To=31/01/2011, Status=true }
Offer2 { Id=1, From=01/02/2011, To=28/02/2011, Status=false}
Offer5 { Id=1, From=01/03/2011, To=31/03/2011, Status=false}
なぜなら、1であるこのオファー ID には、最も古い fromdate である01/01/2011があり、最も頻度の高い fromdate である01/01/2011もあるからです。(2011/01/01 は、メイン リストの fromdate として 3 回表示されます)