我有数组字符串格式(hh.mm) 如何总和? 我使用扩展程序:
static class SumExtensions
{
public static String Sum<T>(this IEnumerable<T> source, Func<T, String> selector)
{
return source.Select(selector).Aggregate((x, y) => x + y);
}
}
但我不明白解析字符串和求和的位置
答案 0 :(得分:3)
首先,您需要将string
转换为TimeSpan
表示。
这是必要的,因为TimeSpan
表示允许对时间间隔执行算术运算。
string[] timeSpanStrings = new[]
{
"01.00", "02.00"
};
var timeSpans = timeSpanStrings.Select(t => TimeSpan.ParseExact(t, @"hh\.mm", CultureInfo.InvariantCulture));
var sumTimeSpan = timeSpans.Aggregate((t1, t2) => t1.Add(t2));
变量sumTimeSpan
包含结果。
答案 1 :(得分:0)
您应首先更改数据结构,从String更改为TimeSpan
然后你可以简单地使用函数TimeSpan#add(Timespan)来对数组中的值求和。