所以我得到了以下查询:
var a = from x in list
group x by new { x.fname, x.lname } into g
select new RolesUsersViewModel(g.Key.fname,
g.Key.lname,
g.Sum(x => x.FocusEnd - x.FocusStart)
);
我收到了错误,该错误位于此部分的问题标题中:x => x.FocusEnd - x.FocusStart
FocusEnd和FocusStart的类型为DateTime。有人可以帮忙吗?我是c#的新手,不知道如何以适当的方式解决这个问题。
以下是ViewModel的代码。
public class RolesUsersViewModel
{
public RolesUsersViewModel(string FirstName, string LastName, TimeSpan totalex)
{
fname = FirstName;
lname = LastName;
total = totalex;
}
public string fname { get; set; }
public string lname { get; set; }
public TimeSpan total { get; set; }
}
答案 0 :(得分:3)
减去两个DateTime的结果是select col1
,col2
,s34.col1 as col3
,s34.col2 as col4
from (select col1
,col2
,min(struct(col3,col4)) as s34
from tablename
group by col1
,col2
) t
;
。不幸的是,你不能TimeSpan
次。您可以将他们的Sum
汇总并使用TotalMilliseconds
创建新的TimeSpan
:
TimeSpan.FromMilliseconds
答案 1 :(得分:2)
这是instanceof
的原因。
如果你想总结滴答,那么
Timestamp - Timestamp = Timestamp
或秒
Sum(x => (x.FocusEnd - x.FocusStart).Ticks)
答案 2 :(得分:2)
你可以暂时将它们添加为秒或滴答
TimeSpan.FromSeconds( g.Sum(x => x.FocusEnd.TotalSeconds - x.FocusStart.TotalSeconds))