2011-09-13 3 views
3

키의 DateTime과 값의 int를 가진 SortedList가 있습니다. DateTime 값에는 시간과 분이 첨부됩니다. C# linq 프로 시저를 사용하여 SortedList를 하나의 날짜로 그룹화하고 시간을 무시하고 값을 합계 할 수 있습니까? 하나의 날짜 별C# Linq group by DateTime시와 분을 무시합니다.

from item in list 
group item by item.Key.Date into g 
select new 
{ 
    Sum = g.Sum(a => a.Value), 
    Values = g 
}; 

답변

7

그것은 매우 간단합니다?

쉽지! 여기의 합계를 얻기 위해 DateTime로 변수 singleDate를 선언 한 가정

쿼리입니다 : 내가 singleDate이 가질 수있는 시간 정보를 드롭 singleDate.Date을 사용했습니다

var result = (
     from key in sortedList.Keys.Cast<DateTime>() 
     where key.Date == singleDate.Date 
     select (int)sortedList[key] 
    ).Sum(); 

하지만, 그이 상당히 똑바로되어야합니다.

SortedList은 LINQ를 사용하는 데 다소 고통 스럽습니다. 왜 당신이 그것을 사용하고 있는지 말해 줄 수 있습니까?