c# - query - linq syntax




Dividere una lista per data distinta (2)

Ecco la forma dei metodi.

allDates
  .GroupBy(d => d.Year)
  .Select(g => g.ToList())
  .ToList();

Un altro facile, si spera.

Diciamo che ho una collezione come questa:

List<DateTime> allDates;

Voglio trasformarlo in

List<List<DateTime>> dividedDates;

dove ciascuna lista in "data di divisione" contiene tutte le date in "tutte le date" che appartengono a un anno distinto.

C'è un po 'di inganno LINQ che la mia mente stanca non riesce a individuare in questo momento?

Soluzione

La risposta accettata è corretta.

Grazie, non penso di essere stato a conoscenza del bit "in" di GroupBy e stavo cercando di usare il tipo di metodi .GroupBy () piuttosto che la sintassi simile a SQL. E grazie per aver confermato l'emendamento ToList () e averlo incluso nella risposta accettata :-)


var q  = from date in allDates 
         group date by date.Year into datesByYear
         select datesByYear.ToList();
q.ToList(); //returns List<List<DateTime>>




linq