0

3 つのプロパティを持つクラス (ApplicationHistory) があります。

ApplicantId、ProviderId、ApplicationDate

データベースからのデータをリストに返しますが、これには重複した ApplicantId/ProviderId キーが含まれています。

各 ApplicantId/ProviderId の最も早い申請日のみがリストに含まれるように、リストを抑制したいと考えています。

以下の例は私が現在いる場所ですが、最も早い日付が確実に返されるようにする方法がわかりません。

    var supressed = history
        .GroupBy(x => new
        {
            ApplicantId = x.ApplicantId,
            ProviderId = x.ProviderId
        })
        .First();

すべてのアドバイスに感謝します。

4

2 に答える 2

3

呼び出しによって形成される各グループGroupByIGrouping<ApplicationHistory>、 を実装する であることを思い出してくださいIEnumerable<ApplicationHistory>。詳しくはIGrouping こちらをご覧ください。それらを注文して最初のものを選ぶことができます:

var oldestPerGroup = history
    .GroupBy(x => new
    {
        ApplicantId = x.ApplicantId,
        ProviderId = x.ProviderId
    })
    .Select(g => g.OrderBy(x => x.ApplicationDate).FirstOrDefault()); 
于 2013-06-12T14:04:51.737 に答える