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

C# 字符串插值:如何重复格式标记批量格式化多个数值变量

解决方法

下面是两种不需要手动逐个编写占位符的常用实现方案:


方案1:分组格式化后拼接(最直观,无占位符)

把所有待格式化数值存入集合,按规则分两组分别格式化后直接拼接即可,完全不需要写任何{}格式标记:

// 把所有变量存入数组
double[] values = new[] { x0, x1, x2, x3, x4, x5, x6, x7, x8, x9 };

// 分组处理后拼接结果
string myFormattedString = string.Join(", ", 
    values.Take(2).Select(v => v.ToString("F9").PadLeft(15))
    .Concat(values.Skip(2).Select(v => v.ToString("E6").PadLeft(15)))
);

后续如果要调整格式化规则、增减数值数量,只要修改分组逻辑和对应的格式化参数即可,维护成本很低。


方案2:动态生成格式串(兼容原有String.Format调用习惯)

如果还是想沿用String.Format的调用方式,可以批量生成重复的格式段,不需要手动逐个写占位符:

// 自动拼接生成格式串:前2项用F9规则,后8项用E6规则,对齐宽度统一为15
string format = string.Join(", ", 
    Enumerable.Range(0, 2).Select(i => $"{{{i},15:F9}}")
    .Concat(Enumerable.Range(2, 8).Select(i => $"{{{i},15:E6}}"))
);

// 调用方式和你原有写法完全一致
string myFormattedString = String.Format(format, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);

内容的提问来源于stack exchange,提问作者Makaveli84

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:36:01