Разделить список по определенной дате - PullRequest
8 голосов
/ 16 сентября 2008

Надеюсь, еще один легкий.

Допустим, у меня есть такая коллекция:

List<DateTime> allDates;

Я хочу превратить это в

List<List<DateTime>> dividedDates;

, где каждый Список в 'splitDates' содержит все даты в 'allDates', относящиеся к отдельному году.

Есть ли какая-то хитрость в LINQ, которую мой уставший ум не может выделить прямо сейчас?

Решение

Принятый ответ правильный.

Спасибо, я не думаю, что я знал о бите «в» GroupBy, и я пытался использовать методы .GroupBy (), а не синтаксис, подобный SQL. И спасибо, что подтвердили поправку ToList () и включили ее в принятый ответ: -)

Ответы [ 2 ]

8 голосов
/ 16 сентября 2008
var q  = from date in allDates 
         group date by date.Year into datesByYear
         select datesByYear.ToList();
q.ToList(); //returns List<List<DateTime>>
7 голосов
/ 16 сентября 2008

Вот форма методов.

allDates
  .GroupBy(d => d.Year)
  .Select(g => g.ToList())
  .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...