c# - 如何在 .Net 中有条件地格式化字符串?

标签 c# .net string string.format

我想对字符串进行一些条件格式化。我知道您可以按如下方式对整数和 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/

相关文章:

c# - EF6 - 运行不带种子的更新数据库命令

.net - Entity Framework 4.1 T4 输出到 IDbset

java - 在每个单词后打印空格

c# - 如果我有一个按钮的引用,我如何以编程方式触发点击事件?

c# - .net 最小化 ssl 握手数据流量

c# - 如何在 C# 中获取下一个特定日期的日期

ASP.NET MVC - 将外部模型传递给编辑器模板

.net - ServiceRoute + WebServiceHostFactory 杀死 WSDL 生成?如何使用 ?wsdl 创建无扩展 WCF 服务

Java 将敏感的 'key' 存储为 String 或 char[]?

javascript - 如何组合数组中相同的字符串?