变量String.Format长度

Mic*_*ers 2 c# string format

我有以下代码:

var str = "ABC";
var n = 7;
var output = String.Format("{0,n}", str);
Run Code Online (Sandbox Code Playgroud)

这应该输出字符串

"    ABC"
Run Code Online (Sandbox Code Playgroud)

我该如何更改上面的行?

Bro*_*ass 9

格式字符串也只是字符串 - 您可以单独定义格式:

int n = 3;
string format = string.Format("{{0,{0}}}", n);
//or more readable: string format = "{0," + n + "}";
var output = string.Format(format, str);
Run Code Online (Sandbox Code Playgroud)

编辑:

更新后看起来你想要的东西也可以通过PadLeft()以下方式实现:

var str = "ABC";
string output = str.PadLeft(7);
Run Code Online (Sandbox Code Playgroud)


Bal*_*nyi 6

写吧:

var lineLength = String.Format("{0," + n + "}", str);
Run Code Online (Sandbox Code Playgroud)