具有可变空间对齐的C#字符串格式

时间:2011-06-17 20:18:08

标签: c# string-formatting

我想做点什么

String.Format("Completed {0:9} of ",0) + xlsx.totalCount.ToString();

除了代替硬编码9,我希望对齐为xlsx.totalCount。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

字符串不必是编译时常量,您可以在运行时构建字符串(使用StringBuilder,operator +或甚至嵌套的String.Format)。 例如,这将生成所需的字符串,xlsx.totalCount替换为“9”:

String.Format("Completed {0:" + xlsx.totalCount + "} of "...

答案 1 :(得分:3)

试试这样:

string formatString = "{0:" + xlsx.totalCount.ToString() + "}";
String.Format("Completed " + formatString + " of ", 0) + xlsx.totalCount.ToString();

答案 2 :(得分:0)

我认为他希望根据xlsx.totalCount的值计算9秒。

   StringBuilder sb = new StringBuilder();
   sb.Append( '9', xlsx.totalCount );
   String.Format( "Completed {0:" + sb.ToString() + "} of ",0) + xlsx.totalCount.ToString();

再一次,感觉应该有一种更简单的方法来构建9链,但显然不是在3分钟的思考中。