#c# #text-alignment #string-interpolation
#c# #форматирование строки
Вопрос:
Я хочу сделать что-то вроде
String.Format("Completed {0:9} of ",0) xlsx.totalCount.ToString();
за исключением того, что вместо жесткого кодирования 9 я хочу, чтобы выравнивание было таким, каким является xlsx.totalCount. Есть мысли?
Комментарии:
1. Я думаю либо
string.PadLeft
, либоnew string(c, count)
…
Ответ №1:
Попробуйте это так:
string formatString = "{0:" xlsx.totalCount.ToString() "}";
String.Format("Completed " formatString " of ", 0) xlsx.totalCount.ToString();
Ответ №2:
Строка не обязательно должна быть константой времени компиляции, вы можете создать строку во время выполнения (используя StringBuilder, operator или даже вложенную строку.Форматирование). Это, например, приведет к созданию необходимой строки с xlsx.totalCount, заменяющей «9»:
String.Format("Completed {0:" xlsx.totalCount "} of "...
Ответ №3:
Я предположил, что он хотел количество в 9 секунд в зависимости от значения xlsx.totalCount .
StringBuilder sb = новый StringBuilder(); sb.Append('9', xlsx.totalCount ); Строка.Форматирование( "Завершено {0:" sb.toString() "} of ",0) xlsx.totalCount.toString();
Опять же, кажется, что должен быть более простой способ построения цепочки из 9 элементов, но, по-видимому, не за 3 минуты размышлений.