Функции, упомянутые другими, будут работать, но эта страница MSDN имеет более общее решение для форматирования, которое изменяется во время выполнения:
Составное форматирование
Они приводят примеры, очень похожие на ваши.
Редактировать: Я думал, что вы пытаетесь решить общий случай составления строки формата во время выполнения. Например, если не было встроенного PadLeft (), вы можете сделать это:
int myInt = 123;
int nColumnWidth = 10;
string fmt = string.Format("Price = |{{0,{0}}}|", nColumnWidth);
// now fmt = "Price = |{0,5}|"
string s = string.Format(fmt, myInt);
Вы можете сделать все это в одной строке, но это ужасно:
string s = string.Format(
string.Format("Price = |{{0,{0}}}|", nColumnWidth),
myInt);