2011-09-13 6 views
3

私は、キーのDateTimeと値のintを持つSortedListを持っています。 DateTime値には時と分が添付されます。時間を無視して値を集計した単一の日付でSortedListをグループ化するC#linqプロシージャを記述することは可能ですか? LINQでC#Linq group by DateTime時と分を無視します。

答えて

7

それは非常に簡単です:単一の日付によって

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

Easy!あなたはここで、の合計を取得するために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で動作するのに少し苦労します。なぜあなたはそれを使用しているのですか?