C# 中的时间跨度总和

2024-04-30

我有一个包含 TimeSpan 变量的对象集合:

MyObject
{ 
    TimeSpan TheDuration { get; set; }
}

我想使用 LINQ 来计算这些时间的总和。 当然,(从 MyCollection 中的 r 选择 r.TheDuration).Sum();不起作用!

我正在考虑将 TheDuration 的数据类型更改为 int,然后对其求和并将总和转换为 TimeSpan。这会很混乱,因为我集合中的每个 TheDuration 都在其他地方用作时间跨度。

对这个总结有什么建议吗?


不幸的是,没有超载Sum接受一个IEnumerable<TimeSpan>。此外,当前没有方法为类型参数指定基于运算符的泛型约束,因此即使TimeSpan是“本机”可求和的,这一事实不能通过通用代码轻松获取。

正如您所说,一种选择是总结相当于时间跨度的积分类型,然后将that总和为TimeSpan再次。对此的理想属性是TimeSpan.Ticks http://msdn.microsoft.com/en-us/library/system.timespan.ticks.aspx,准确地往返。但根本没有必要改变类的属性类型;你可以project:

var totalSpan = new TimeSpan(myCollection.Sum(r => r.TheDuration.Ticks));

或者,如果您想坚持 TimeSpan 的+运算符进行求和,您可以使用Aggregate操作员:

var totalSpan = myCollection.Aggregate
                (TimeSpan.Zero, 
                (sumSoFar, nextMyObject) => sumSoFar + nextMyObject.TheDuration);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的时间跨度总和 的相关文章

随机推荐

  • 是否有适用于 Amazon 产品 API 的最新 C# 示例?

    我正在尝试创建一个与亚马逊的产品 API 交互的小型应用程序 获取文章的价格等 不幸的是 到目前为止我发现的与 Amazon WCF 服务交互的所有 C 示例都已过时 我知道 Amazon 决定每个服务调用都必须使用个人 accessKey
  • 在 Javascript 构造函数中引用实例变量

    我试图通过执行以下操作来维护对象的状态 obj function this foo undefined this changeState function function this foo bar This is contrived bu
  • Graph 返回错误:API 参数中提供的 appsecret_proof 无效

    我正在使用 facebook PHP sdk v4 来获取用户信息 安装SDK后 我添加代码 fb new Facebook Facebook app id gt my app id app secret gt my app secret
  • 是否可以通过 MX 查找获取端口?

    我正在了解什么是的旅程从 Python 代码发送电子邮件的正确方法 https stackoverflow com questions 50695188 what is the proper way to actually send mai
  • 如果使用简单的异或密码需要申请CCATS吗?

    iTunesConnect 指出 如果在应用程序中使用加密 开发人员需要获得 CCATS 分类 我的应用程序在通过 HTTP 传输数据时使用简单的 XOR 混淆密码 这仍然符合该要求吗 如果不是 那么什么类型的加密需要进行 CCATS 分类
  • android studio 错误:缺少功能:WATCH

    我尝试在我的智能手表上使用 android studio 运行一个简单的应用程序 并收到以下消息 我的智能手表运行 Android 4 4 2 其 API 级别为 19 我尝试过但没有帮助的事情 将最低 SDK 版本更改为 API 19 r
  • 如何替换 NSString 中的 \xA0 字符

    以下代码不起作用 NSString importText textView string stringByReplacingOccurrencesOfString xA0 xA0 withString 编译器声明 由于输入字节不属于输入代码
  • IIS7 权限概述 - ApplicationPoolIdentity

    我们最近升级到 IIS7 作为核心 Web 服务器 我需要一个权限方面的概述 以前 当需要写入文件系统时 我会授予 AppPool 用户 网络服务 对目录或文件的访问权限 在 IIS7 中 我看到默认情况下 AppPool 用户设置为App
  • 什么是 .tpl 文件? PHP、网页设计

    有人希望我重新设计一个用 PHP VideoCMS 运行的网站 但是当我要求他向我发送源代码时 他给了我 tpl 文件而不是 php 其中有一些代码 include file header tpl p article br table wi
  • 使用 ProGuard 对 Android 代码进行混淆...如何知道它已被混淆?

    我有一个 Android 项目 最近通过 ProGuard 进行混淆运行后发布到市场 该项目导出时没有任何复杂性 但我怎么知道它已被混淆 我可以做些什么来验证混淆是否成功 寻找dump txt mapping txt seeds txt a
  • OpenSubKey 不适用于我需要的注册表值

    我安装了 SQL Server In the registry the key MSSQLServer at HKEY LOCAL MACHINE SOFTWARE Microsoft looks like this 以下所有代码行都从注册
  • CoAP 和 DTLS 集成

    我实现了 CoAP libcoap 和 DTLS tinyDTLS 的实现 如何将 CoAP libcoap 与 DTLS tinyDTLS 集成 我将不胜感激任何建议 libcoap 现在完全支持这一点 当您使用其子模块构建它时 git
  • 从查找文件中批量重命名部分文件名

    edit 请参阅底部以了解我的最终解决方案 我有一个包含约 12 700 个文本文件的目录 他们的名字是这样的 1 Re Report Novenator 公开呼吁埋葬 Lizbett 星期四 2009 年 9 月 10 日 txt 其中前
  • 当手机进入睡眠/待机模式时,活动/服务会发生什么?

    当手机 AP进入睡眠模式时 Android应用程序以及属于应用程序的活动和服务会发生什么 框架会破坏活动和服务并且操作系统会杀死进程吗 如果设备处于睡眠状态 将调用 Activity 的 onPause 读活动生命周期 http devel
  • python matplotlib 无边框表格

    我在表格顶部有一个由以下示例生成的图 表格数据被随机数替换 实际绘图被一些任意函数替换 import numpy as np import matplotlib pylab as plt fig ax plt subplots ntp 17
  • python 拆分而不创建空白

    我明白为什么使用 split 创建空白很重要 这要归功于这个问题 https stackoverflow com questions 2197451 why are empty strings returned in split resul
  • 如何使用 Linq to SQL 从存储过程中检索多行?

    我最近开始使用 Linq to SQL 想知道如何通过执行存储过程来获取多行 这是我想要使用的一个简单的 sp CREATE PROCEDURE gsp ftsmultiple SearchKey varchar 100 AS BEGIN
  • 根据另一行中另一列的值将列添加到数据框

    我正在寻找我的具体问题的答案 但没有找到结论 我找到了这个 根据其他列的值将列添加到数据框 https stackoverflow com questions 26067161 add column to data frame based
  • C++ GetDIBits 不工作

    首先我加载图像 cool bmp 加载很好 然后我调用函数 getPixArray 但它失败了 case WM CREATE runs once on creation of window hBitmap HBITMAP LoadImage
  • C# 中的时间跨度总和

    我有一个包含 TimeSpan 变量的对象集合 MyObject TimeSpan TheDuration get set 我想使用 LINQ 来计算这些时间的总和 当然 从 MyCollection 中的 r 选择 r TheDurati