我相信你想沿着以下查詢的路線的東西:
var groups = data.GroupBy(v => new {Year = v.TimeRecorded.Year,
Season = SeasonFromMonth(v.TimeRecorded.Month),
Month = v.TimeRecorded.Month,
Week = System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(v.TimeRecorded, System.Globalization.CalendarWeekRule.FirstDay, System.DayOfWeek.Monday),
Day = v.TimeRecorded.Day});
與接受整月,並返回指示賽季的一些值(可能是一個枚舉)一個輔助函數SeasonFromMonth
。
然後,您可以選擇相關的亞組之類的查詢:
var fallValues = groups.Where(g => g.Key.Season == Seasons.Fall);
var decemberValues = groups.Where(g => g.Key.Month == 12);
var firstOfMonth = groups.Where(g => g.Key.Day == 1);
等,或通過添加SelectMany
條款(雖然SelectMany
會扔掉鑰匙信息)拼合組到一個列表:
groups.Where(g => g.Key.Season == Seasons.Fall).SelectMany(g => g);
groups.Where(g => g.Key.Month == 12).SelectMany(g => g);
groups.Where(g => g.Key.Day == 1).SelectMany(g => g);
您可以使用LINQ,您可以使用不同的方法。但是,你卡在哪裏?這聽起來像一個需求規格說明。 –
我們在談論多少條記錄? – Marcom
@TimSchmelter im Stucking根據年份,季節,月份,周和日查找分組數據的方法。哪種是你可以想到的另一種方法? – olidev