使用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,并将格式化字符串的长度用作字段宽度。 如果对齐为正,则字段中的格式化数据右对齐;如果对齐为负,则对齐左对齐。 如果需要填充,则使用空格。 如果指定了对齐,则需要逗号。
所以这就是我们使用负对齐的原因,因为您希望第一列是左对齐的 。