小编May*_*tel的帖子

在linq查询或c#中表示小时的3个数字的总和

我的列有花费的小时值,如(10.30,1.45 ...)我想总结这些数字以获得总花费时间.例:

值11.11,0.50,0.59

总花费时间11和分钟总和(11 + 50 + 59)= 120分钟= 2小时

所以我的最终输出应该是11 + 2 = 13.00小时

但在我的c#查询中,我得到11.11 + 0.50 + 0.59 = 12.2这是错误的,因为我认为它是小时格式.

如何在不分割数字的情况下获得13.00小时的结果.

我试过了:

db.myTable.Where(t => t.is_deleted == false).Sum(t => t.time_spent)
Run Code Online (Sandbox Code Playgroud)

这给了我12.2但我想要13.00,因为我认为它是时间.

编辑:

我用了

List<string> hoursTemp1 = Model.tblName.Where(t => t.is_deleted == false).Select(p => p.time_spent.ToString()).ToList();
    var total_effort_hr = new TimeSpan(hoursTemp1.Sum(x => TimeSpan.ParseExact(x, "h\\.mm", System.Globalization.CultureInfo.InvariantCulture).Ticks)).ToString(@"hh\:mm");
Run Code Online (Sandbox Code Playgroud)

但是现在我正在获得OverflowException for Hour值大于24且min值大于60

那么有人可以帮我解决这个错误并得到正确的结果吗?任何帮助都会被贬低.

c# linq lambda

-1
推荐指数
1
解决办法
289
查看次数

标签 统计

c# ×1

lambda ×1

linq ×1