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;