2008-09-16 6 views
8

Kolejny łatwy z nadzieją.Podział listy według odrębnej daty

Powiedzmy mam kolekcję takiego:

List<DateTime> allDates; 

Chcę kolei, że w

List<List<DateTime>> dividedDates; 

gdzie każdy List w „dividedDates” zawiera wszystkie daty w „allDates”, które należą do odrębnego roku.

Czy jest trochę sztuczek LINQ, których mój zmęczony umysł nie może teraz wybrać?

Rozwiązanie

Zaakceptowanych odpowiedź jest poprawna.

Dzięki, nie sądzę, byłem świadomy "do" nieco GroupBy i próbowałem użyć metody .GroupBy(), a nie jak SQL składni. I dziękuję za potwierdzenie poprawki ToList() i włączenie jej do zaakceptowanej odpowiedzi :-)

Odpowiedz

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

Dzięki! Proszę zobaczyć mój mały komentarz w pytaniu dotyczącym wymagań ToList() na wypadek, gdy się mylę :-) –

+0

Naprawiono i przetestowałem –

7

Oto formularz metod.

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

Heh Przysięgam, że spróbowałem czegoś takiego :-) Dzięki! –

+0

Dzięki! Użyłem tego i działa dobrze. – VoodooChild