Какой самый простой способ группировки данных по времени, по месяцам?
В приведенном ниже примере есть список игр, в каждой из которых указана дата и город, в котором была сыграна игра. Если мы хотим получить количество игр, сыгранных за месяц, сгруппировав их по месяцам, целесообразно ли использовать составной ключ год-месяц, как я? Любые другие подходы? Включая те, которые не требуют использования составного группирующего ключа?
public static void GamesByMonth ()
{
var games = new List<Game>()
{
new Game() { Date = new DateTime( 2010, 11, 15 ), City = "Denver"},
new Game() { Date = new DateTime( 2011, 1, 11 ), City = "Chicago"},
new Game() { Date = new DateTime( 2011, 1, 10 ), City = "Houston"},
new Game() { Date = new DateTime( 2011, 3, 21 ), City = "Atlanta"},
new Game() { Date = new DateTime( 2011, 4, 18 ), City = "Denver"},
new Game() { Date = new DateTime( 2011, 4, 29 ), City = "Boston"}
};
var groupings =
from game in games
group game by new
{
game.Date.Year,
game.Date.Month
};
}
Примечание. Я включаю год в ключ группировки, так как в этом случае мы хотим, чтобы тренд со временем отличался от абсолютного количества игр, сыгранных в конкретном месяце, независимо от года.