LINQ C#在数据表中求和并将值更改为时间(hh:mm:ss)

时间:2016-06-02 14:33:49

标签: c# linq

我使用LINQ创建了数据表。我有int字段,represnts数字。我想让它们显示为时间(hh:mm:ss)。我怎样才能做到这一点 ?

这是我的代码:

var groupedData = from b in final.AsEnumerable()
                  orderby b.Field<string>("Agent")
                  group b by b.Field<string>("Agent") into g
                  select new
                  {
                      KeyName = g.Key,
                      Team = g.First().Field<string>("Team"),
                      Agent = g.First().Field<string>("Agent"),
                      TalkTime = g.Sum(b => b.Field < int ?> ("talkTime"))
                  };

代码中的行是:

 TalkTime = g.Sum(b => b.Field < int ?> 

1 个答案:

答案 0 :(得分:1)

您想从TimeSpan - int获取talkTime,然后使用其中一个TimeSpan.From... methods。因此,如果这些是例如秒:

TalkTime = TimeSpan.FromSeconds((int)g.Sum(b => b.Field<int?>("talkTime")))

分钟:

TalkTime = TimeSpan.FromMinutes((int)g.Sum(b => b.Field<int?>("talkTime")))

如果您想输出字符串,可以使用TimeSpan.ToString("hh':'mm':'ss")

TalkTime = TimeSpan.FromMinutes((int)g.Sum(b => b.Field<int?>("talkTime"))).ToString("hh':'mm':'ss")