2008-09-16 9 views
8

또 다른 쉬운 방법입니다.뚜렷한 날짜순으로 목록 나누기

의 내가 이런 모음 있다고 가정 해 봅시다 :

List<DateTime> allDates; 

내가

'dividedDates'의 각 목록 'allDates'의 날짜가 모두 포함
List<List<DateTime>> dividedDates; 

에 그것을 켜려는를 그 뚜렷한 해에 속한다.

피곤한 마음으로 지금 골라 낼 수없는 약간의 LINQ 속임수가 있습니까?

솔루션

허용 대답은 올바른 것입니다.

감사합니다. GroupBy의 'into'비트를 인식하지 못했고 SQL과 같은 구문 대신 .GroupBy() 정렬 방법을 사용하려고했습니다. ToList() 수정안을 확인하고 수락 응답에 포함 해 주셔서 감사합니다. :-)

답변

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

고마워요! 저의 경우 ToList() 요구 사항에 대한 질문에 대한 나의 작은 의견을 참조하십시오 :-) –

+0

고정 및 테스트 –

7

다음은 메소드 양식입니다.

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

Heh 나는 이런 식으로 시도했습니다 .-) 감사합니다! –

+0

감사! 나는 이것을 사용했고 잘 작동한다. – VoodooChild