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
相关产品推荐
相关产品推荐

