カレンダー (日付のリスト) を日番号でフィルタリングしようとしていますが、特定のシナリオで苦労しています!
カレンダーには最初、2013 年 1 月 31 日から 2015 年 1 月 31 日など、指定された範囲のすべての日付が含まれます。このリストをフィルター処理して、カレンダーの最初の日の番号に一致する日付のみを含めたいと思います。カレンダーが 25 の場合、返される新しいフィルター済みカレンダーは次のようになります。
- 2013年2月25日
- 2013年3月25日
- 2013年4月25日
...など
この最初の例は、LINQ を使用すると十分に単純です。
var calendar = ...code to get calendar from DB.
//Get Day Number of First Entry in Calendar (31st for example)
int day = calendar.Dates.Select(d => d.Date.Day).First();
//Filter the rest of the calendar by this date.
return new Calendar
{
Dates = calendar.Dates.Where(c => c.Date.Day == day).ToList()
};
たとえば、31 を渡すと問題が発生します。私の要件は、これが返されるようにすることです。
- 2013年1月31日
- 2013年2月28日
- 2013年4月30日
- 2013 年 5 月 31 日
...など
これを達成するための最良の方法は何ですか?水曜日の朝、脳をつついている!
可能であれば、答えが完璧なワンライナーLINQステートメントになることを望みます:)
どうもありがとう、
アレックス