我有一个接收消息和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
并且不引入任何新变量是否有一种简单(和正确)的方式来获得所需的输出。
答案 0 :(得分:10)
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 :(得分:1)
你能把第一列放大到8个空格吗?如果是的话......
private string FormatMessage(string message, Priority priority)
{
return string.Format("{0,-8} - {1}", "*" + priority.ToString() + "*", message);
}