【问题标题】:IEnumerable<double> convert to IEnumerable<DateTime>IEnumerable<double> 转换为 IEnumerable<DateTime>
【发布时间】:2021-07-25 06:26:25
【问题描述】:

美好的一天! 我有以下块时:

var userDateReg = DB.Users.Select(u => u.DateLastVisit - u.DateRegistration).ToArray()
                          .Select(i => i.TotalDays);
return userDateReg;

我想返回 IEnumerable&lt;DateTime&gt; 而不是 IEnumerable&lt;double&gt;

【问题讨论】:

  • 日期的减法不是日期,它是TimeSpan,你得到它的日子。删除.Select(i =&gt; i.TotalDays),你会得到TimeSpan
  • ...和 ​​TimeSpan.TotalDays 将是 10、16、175 之类的值 - 难以转换为日期或时间跨度

标签: c# .net type-conversion


【解决方案1】:

日期的减法不是日期,它是一个时间跨度,你得到它的天数。删除 .Select(i =&gt; i.TotalDays) 你会得到 TimeSpan:

var userDateReg = DB.Users.Select(u => u.DateLastVisit - u.DateRegistration).ToArray();
                          

请注意,userDateRegTimeSpan(持续时间)的数组,您可以访问它的天数、小时数......

如果你想得到一个看起来像一个持续时间的字符串:

var userDateReg = DB.Users.Select(u => (u.DateLastVisit - u.DateRegistration).ToString(@"d\.hh\:mm\:ss")).ToArray();

现在 userDateReg 将是一个字符串数组,如下所示:3.11:49:25

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多