使用String Interpolation将字符串格式化为列

我需要打印双打,以便为字符串表示值分配确定数量的符号(如8)。 下一个单词应该从每个字符串中字符串开头的相同索引处开始。 我现在有:

value: 0 test value: 0.3333333333333 test value: 0.5 test 

我需要:

 value: 0 test value: 0.33333333 test value: 0.5 test 

测试代码:

 double[] ar = new double[] { 0, (double)1 / 3, (double)1 / 2 }; string s = "test"; foreach (var d in ar) { Console.WriteLine($"value: {d} {s}"); } 

{d: :?之后我应该添加什么?

您可以使用对齐组件来实现此目的。 像这样:

 Console.WriteLine($"value: {d,-17} {s}"); 

可选的对齐组件是一个有符号整数,表示首选的格式化字段宽度。 如果alignment的值小于格式化字符串的长度,则忽略alignment,并将格式化字符串的长度用作字段宽度。 如果对齐为正,则字段中的格式化数据右对齐;如果对齐为负,则对齐左对齐。 如果需要填充,则使用空格。 如果指定了对齐,则需要逗号。

所以这就是我们使用负对齐的原因,因为您希望第一列是左对齐的