Форматирование строки C # с переменным выравниванием пространства - PullRequest
4 голосов
/ 18 июня 2011

Я хочу сделать что-то вроде

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

за исключением того, что вместо жесткого кодирования 9 я хочу, чтобы выравнивание было таким, каким является xlsx.totalCount.Есть мысли?

Ответы [ 3 ]

3 голосов
/ 18 июня 2011

Попробуй так:

string formatString = "{0:" + xlsx.totalCount.ToString() + "}";
String.Format("Completed " + formatString + " of ", 0) + xlsx.totalCount.ToString();
3 голосов
/ 18 июня 2011

Строка не должна быть константой времени компиляции, вы можете построить строку во время выполнения (используя StringBuilder, operator + или даже вложенный String.Format). Это, например, даст необходимую строку с xlsx.totalCount, заменяющим «9»:

String.Format("Completed {0:" + xlsx.totalCount + "} of "...
0 голосов
/ 18 июня 2011

Я предположил, что ему нужно число 9 в зависимости от значения xlsx.totalCount.

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

Опять же, кажется, что должен быть более простой способ построения цепочки из 9,но, видимо, не через 3 минуты.

...