将列表<string>从hh:mm格式解析为新的十进制(小时)格式列表

时间:2015-09-01 13:52:20

标签: c#

我有一个清单:

 List<String> sqlListHrsUptime;

以“hh:mm”格式保存多个字符串。

我想以十进制格式转换为新列表。我发现:

TimeSpan.Parse("04:03").TotalHours; 

作为个人价值观的一种手段。

我似乎无法为具有不同数量的字符串的列表创建一个有效的解决方案(它从用户输入参数的SQL表中提取数据)。如何在使用Parse()时将第一个列表直接复制到新列表.TotalHours方法?或者另一种可以完成同样事情的解决方案?

2 个答案:

答案 0 :(得分:3)

如果您可以拥有完整的-bash-4.1$ make -f makefile64bit /usr/bin/g++ -o /localdata/sunny/CDDmain/sw/build/lib/libmpsAlgo.so -m64 -DBIT64 AutomatedDelayAnalysis.o AutomatedAnalysis.o DelayAnalysis.o jniADMux.o TrayCanvas.o TrayHandler.o -L/localdata/sunny/CDDmain/sw/build/lib - L/localdata/sunny/CDDmain/sw/3rdParty/csim/csim20_64bit/gpp/lib -lmps-Cplusplus /localdata/sunny/CDDmain/sw/build/lib/libmps-Cplusplus.a: could not read symbols: File in wrong format collect2: ld returned 1 exit status make: *** [/localdata/sunny/CDDmain/sw/build/lib/libmpsAlgo.so] Error 1 ,为什么只需要列表中的TotalHours

TimeSpan

或更短List<TimeSpan> spans = sqlListHrsUptime.Select(s => TimeSpan.Parse(s)).ToList();

List.ConvertAll

如果你坚持List<TimeSpan> spans = sqlListHrsUptime.ConvertAll(TimeSpan.Parse);

decimal

答案 1 :(得分:0)

你可以这样做:

var output = new List<decimal>();

foreach (var item in sqlListHrsUptime)
{
    output.Add(Convert.ToDecimal(TimeSpan.Parse(item).TotalHours));
}