c# – 包含String.Format中的Else语句

我有以下状态.

  timespan = timespan.FromSeconds(236541)
  formattedTimeSpan = String.Format("{0} hr {1} mm {2} sec", Math.Truncate(timespan.TotalHours), timespan.Minutes, timespan.Seconds)

如果超过一小时,我必须将其格式化为“hrs mn sec”.我想在上面的String.Format中检查这个.

谢谢.

最佳答案
一种可能性是制作格式字符串的复数部分,并写:

formattedTimeSpan = String.Format("{0} hr{1} {2} mm {3} sec",
    Math.Truncate(timespan.TotalHours),
    Math.Truncate(timespan.TotalHours) == 1 ? "" : "s",
    timespan.Minutes,
    timespan.Seconds);

如果输出显示除“1小时”以外的任何内容,这将在输出中插入“s”.

请注意,这对本地化不友好:其他语言与复数形式不同于英语.

转载注明原文:c# – 包含String.Format中的Else语句 - 代码日志