2013-08-12 122 views
0

我有一個問題;實際上我在我的數據庫表格中以HH.mm格式工作,我想用LINQ來總結所有的工作時間,任何1請告訴如何做到這一點。使用linq求和時間間隔

在整個週末我有所有的工作時間,我已經用HH:mm替換HH.mm格式,但我不知道如何使用Linq在timespanSum()中解析它。

請大家幫忙。

var totalWeekHours = (from twh in db.MytimeMaster 
         where ((twh.date >= lstsun && twh.date <= tilldate) 
          && (twh.agentID == agentid)) 
         select twh.totalworkinghours).ToList(); 

if (totalWeekHours.Count > 0) 
{ 
    List cnvrtToTimespanlist = new List(); 
    foreach(var list in totalWeekHours) 
    { 
     cnvrtToTimespanlist.Add(list.ToString().Replace('.', ':')); 
    } 
} 
+3

請更有效地格式化您的代碼...以及爲什麼您的數據庫數據仍然以文本形式存在?你能以任何方式改變它嗎? (例如,「工作分鐘」的數值可以。) –

+2

「可以任意1」...請。我明白英語不是堆棧溢出許多人的第一語言,但這不是使用文本俚語的藉口。 – Tim

+0

@Tim它已經改變了。 – Default

回答

0

您可以使用Aggregate方法。

var sum = (from twh in db.MytimeMaster 
where ((twh.date >= lstsun && twh.date <= tilldate) && (twh.agentID == agentid)) 
select twh.totalworkinghours).Aggregate(TimeSpan.FromMinutes(0), (total, next) => total + next); 

p.s.假定時間間隔使用TimeSpan。