Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解析列表<;字符串>;从hh:mm格式到十进制(小时)格式的新列表_C# - Fatal编程技术网

C# 解析列表<;字符串>;从hh:mm格式到十进制(小时)格式的新列表

C# 解析列表<;字符串>;从hh:mm格式到十进制(小时)格式的新列表,c#,C#,我有一份清单: List<String> sqlListHrsUptime; 作为实现个人价值的一种手段 我似乎无法为一个包含不同数量字符串的列表创建一个可行的解决方案(它是从用户输入参数的SQL表中提取数据)。使用Parse().TotalHours方法时,如何直接将第一个列表复制到新列表?还是另一个可以实现同样目标的解决方案 如果您可以拥有完整的TimeSpan,为什么只希望列表中包含TotalHours List<TimeSpan> spans = sqlLis

我有一份清单:

 List<String> sqlListHrsUptime;
作为实现个人价值的一种手段


我似乎无法为一个包含不同数量字符串的列表创建一个可行的解决方案(它是从用户输入参数的SQL表中提取数据)。使用Parse().TotalHours方法时,如何直接将第一个列表复制到新列表?还是另一个可以实现同样目标的解决方案

如果您可以拥有完整的
TimeSpan
,为什么只希望列表中包含
TotalHours

List<TimeSpan> spans = sqlListHrsUptime.Select(s => TimeSpan.Parse(s)).ToList();
如果您坚持使用十进制:

List<decimal> hours = sqlListHrsUptime
    .Select(s => (decimal)TimeSpan.Parse(s).TotalHours)
    .ToList();
List hours=sqlListHrsUptime
.Select(s=>(十进制)TimeSpan.Parse(s).TotalHours)
.ToList();

您可以简单地执行以下操作:

var output = new List<decimal>();

foreach (var item in sqlListHrsUptime)
{
    output.Add(Convert.ToDecimal(TimeSpan.Parse(item).TotalHours));
}
var输出=新列表();
foreach(sqlListHrsUptime中的var项)
{
Add(Convert.ToDecimal(TimeSpan.Parse(item.TotalHours));
}

我是否正确地解释了这一点,因为它会给我小时,小数点代表分钟或秒?“此属性将此实例的值从刻度转换为小时。此数字可能包括整小时和小数小时。”@DanGrover:否,小数也表示小时,但剩余/小数部分(例如2小时30分钟是
2.5
TotalHours)。但是,我不知道您的要求,您使用了
TotalHours
并说您需要小数。谢谢!这很有帮助。我在考虑十进制,这样我就可以对程序的另一部分的列表求和了。
List<decimal> hours = sqlListHrsUptime
    .Select(s => (decimal)TimeSpan.Parse(s).TotalHours)
    .ToList();
var output = new List<decimal>();

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