【发布时间】:2020-11-06 04:17:22
【问题描述】:
我有一个这样的模型:
public class MyViewModel
{
public TimeSpan AverageLogOn { get; set; }
public TimeSpan AverageLogOff { get; set; }
public TimeSpan AverageTotalHours { get; set; }
}
我将此模型用作列表,例如:
public IList<MyViewModel> MyViewModelList { get; set; } = new List<MyViewModel>();
我想做的是将AverageLogOn 格式化为“hh:mm:ss” 我该如何使用LINQ,我想是这样的:
MyViewModel.Select(x => new MyViewModel { AverageLogOn = x.AverageLogOn.ToString("hh:mm:ss"), AverageLogOff = x.AverageLogOff, AverageTotalHours = x.AverageTotalHours });
但是当我尝试x.AverageLogOn.ToString("hh:mm:ss") 时,它会抛出一个错误
无法将类型“字符串”隐式转换为“System.TimeSpan”
我做错了什么?问候
【问题讨论】:
-
ToString 创建一个字符串,目标类型为 TimeSpan。您要么需要分配时间跨度,而不是字符串,要么需要将目标类型更改为字符串。
-
此外,
TimeSpan没有 格式——当你想显示它时你可以指定一个格式。您应该在那里指定格式,而不是在 ViewModel 中。