LINQ練習 #1 「LINQ to Object 基本」 - 悠希 - builder by ZDNet Japan
ここで書かれてるコードが↓これ。
List<DateTime> list;
list = new List<DateTime>();
for(int i=0;i<=365;i++) list.Add(DateTime.Today.AddDays(i));
int nowYear;
nowYear = DateTime.Today.Year;
var sunday = from M in list
where M.DayOfWeek == DayOfWeek.Sunday &&
M.Year = nowYear select M;
foreach (var row in sunday) {
Console.WriteLine(row.ToShortDateString());
}※今年かどうか判定する条件の部分が代入になってるよ~。
せっかくLINQを使うっていうお題なんだから日付の生成部分もList<DateTime>に生成して入れておく、なんてことをしないで、そこもLINQに含めちゃった方がオシャレ感でると思うよ~。そう、例えば↓こんな感じでね。
var today = DateTime.Today;
var sunday = from date in
from day in Enumerable.Range(0, 365)
select today.AddDays(day)
where date.DayOfWeek == DayOfWeek.Sunday &&
date.Year == today.Year
select date;