我想对字符串进行一些条件格式化。我知道您可以按如下方式对整数和 float 进行一些条件格式化:
Int32 i = 0;
i.ToString("$#,##0.00;($#,##0.00);Zero");
如果变量为正、负或零,上述代码将产生三种格式之一。
我想知道是否有任何方法可以在字符串参数上使用部分。对于一个具体但做作的示例,我希望替换以下代码中的“if”检查:
string MyFormatString(List<String> items, List<String> values)
{
string itemList = String.Join(", " items.ToArray());
string valueList = String.Join(", " values.ToArray());
string formatString;
if (items.Count > 0)
//this could easily be:
//if (!String.IsNullOrEmpty(itemList))
{
formatString = "Items: {0}; Values: {1}";
}
else
{
formatString = "Values: {1}";
}
return String.Format(formatString, itemList, valueList);
}
最佳答案
好吧,您可以使用条件运算符稍微简化一下:
string formatString = items.Count > 0 ? "Items: {0}; Values: {1}" : "Values: {1}";
return string.Format(formatString, itemList, valueList);
或者甚至将其包含在同一语句中:
return string.Format(items.Count > 0 ? "Items: {0}; Values: {1}" : "Values: {1}",
itemList, valueList);
这就是你想要的吗?我不认为你可以有一个单一的格式字符串,它有时包含位,有时不包含位。
关于c# - 如何在 .Net 中有条件地格式化字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154483/