Выравнивание строки с помощью string.Format () - PullRequest
4 голосов
/ 15 марта 2012

Я получил метод, который получает сообщение и перечисление Priority и возвращает отформатированную строку.

private string FormatMessage(string message, Priority priority)
{
    return string.Format("*{0,-6}* - {1}", priority, message);
}

Priority имеет три возможных значения: High, Medium и Low.

Я использую опцию выравнивания string.Format, чтобы вывод выглядел хорошо.Я хотел бы, чтобы результат выглядел так:

*Low*    - First message
*Medium* - Second message
*Low*    - Third message

Однако я получаю следующее:

*Low   * - First message
*Medium* - Second message
*Low   * - Third message

Я понимаю, почему это происходит, но чтоЯ хотел бы знать, есть ли простой (и правильный) способ получить желаемый результат, используя string.Format и не вводя никаких новых переменных.

Ответы [ 2 ]

10 голосов
/ 15 марта 2012
string.Format("{0,-8} - {1}", "*" + priority + "*", message);

Или, если вам хочется:

string.Format("{0,-8} - {1}", string.Format("*{0}*", priority), message);
string.Format("{0,-8} - {1}", string.Join(priority, new [] {"*", "*"}), message);
1 голос
/ 15 марта 2012

Не могли бы вы увеличить первый столбец до 8 пробелов ?, если да ...

private string FormatMessage(string message, Priority priority) 
{ 
    return string.Format("{0,-8} - {1}", "*" + priority.ToString() + "*", message); 
} 
...