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

Dor*_*ork 3 c# string format double c#-6.0

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

value: 0 test
value: 0.3333333333333 test
value: 0.5 test
Run Code Online (Sandbox Code Playgroud)

我需要:

value: 0           test
value: 0.33333333  test
value: 0.5         test
Run Code Online (Sandbox Code Playgroud)

测试代码:

double[] ar = new double[] { 0, (double)1 / 3, (double)1 / 2 };
string s = "test";

foreach (var d in ar)
{
    Console.WriteLine($"value: {d} {s}");
}
Run Code Online (Sandbox Code Playgroud)

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

Sal*_*ari 7

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

Console.WriteLine($"value: {d,-17} {s}");
Run Code Online (Sandbox Code Playgroud)

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

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