You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中省略变量,将含TimeSpan.TotalHours的插值字符串写为单行?

解决方案

当然可以在最新版C#/.NET中实现单行代码,无需声明额外变量,这里提供两种常用方式:

方式一:直接重复创建TimeSpan(简单直观)

这种方式逻辑最简单,虽然会创建两个TimeSpan实例,但对于这个场景来说性能影响可以忽略:

using System;

namespace Whatever
{
    public class DoesNotMatter
    {
        public static string MinsToHoursAndMins(int Mins) => $"{(int)TimeSpan.FromMinutes(Mins).TotalHours}.{TimeSpan.FromMinutes(Mins):mm}";
    }
}

方式二:利用C# 7.0+的表达式内变量声明(只创建一次TimeSpan)

如果想避免重复创建TimeSpan,可以用C# 7.0及以上支持的表达式内变量声明,在字符串插值里直接定义并复用变量:

using System;

namespace Whatever
{
    public class DoesNotMatter
    {
        public static string MinsToHoursAndMins(int Mins) => $"{(int)(var ts = TimeSpan.FromMinutes(Mins)).TotalHours}.{ts:mm}";
    }
}

两种方式都能把方法写成单行,且不需要额外声明SensibleTimes变量。其中第二种方式只创建一次TimeSpan实例,更高效,不过需要你的项目使用C# 7.0或更高版本(对应.NET Framework 4.7.2+、.NET Core 2.0+或.NET 5+)。

内容的提问来源于stack exchange,提问作者J. Mini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:35:18