If string的一个衬里不为null或为空

use*_*261 62 c# if-statement isnullorempty

我通常在整个应用程序中出于各种原因使用这样的东西:

if (String.IsNullOrEmpty(strFoo))
{
     FooTextBox.Text = "0";
}
else
{
     FooTextBox.Text = strFoo;
}
Run Code Online (Sandbox Code Playgroud)

如果我要使用它很多,我将创建一个返回所需字符串的方法.例如:

public string NonBlankValueOf(string strTestString)
{
    if (String.IsNullOrEmpty(strTestString))
        return "0";
    else
        return strTestString;
}
Run Code Online (Sandbox Code Playgroud)

并使用它像:

FooTextBox.Text = NonBlankValueOf(strFoo);
Run Code Online (Sandbox Code Playgroud)

我总是想知道是否有一些东西是C#的一部分,它会为我做这件事.可以称之为的东西:

FooTextBox.Text = String.IsNullOrEmpty(strFoo,"0")
Run Code Online (Sandbox Code Playgroud)

第二个参数是返回值if String.IsNullOrEmpty(strFoo) == true

如果不是,有人有更好的方法吗?

Ant*_*ram 127

有一个null合并运算符(??),但它不会处理空字符串.

如果你只对处理空字符串感兴趣,你可以使用它

string output = somePossiblyNullString ?? "0";
Run Code Online (Sandbox Code Playgroud)

根据您的具体需要bool expr ? true_value : false_value,您可以使用条件运算符来简单地设置或返回值的if/else语句块.

string output = string.IsNullOrEmpty(someString) ? "0" : someString;
Run Code Online (Sandbox Code Playgroud)

  • +1是什么时候使用null coalesc的好例子,虽然OP可能需要它来捕获他/她的情况下的空字符串. (2认同)

Jim*_*hel 13

您可以使用三元运算符:

return string.IsNullOrEmpty(strTestString) ? "0" : strTestString

FooTextBox.Text = string.IsNullOrEmpty(strFoo) ? "0" : strFoo;
Run Code Online (Sandbox Code Playgroud)


ssi*_*777 9

您可以为String类型编写自己的Extension方法: -

 public static string NonBlankValueOf(this string source)
 {
    return (string.IsNullOrEmpty(source)) ? "0" : source;
 }
Run Code Online (Sandbox Code Playgroud)

现在你可以像使用任何字符串类型一样使用它

FooTextBox.Text = strFoo.NonBlankValueOf();
Run Code Online (Sandbox Code Playgroud)


Hos*_*Rad 7

这可能有所帮助:

public string NonBlankValueOf(string strTestString)
{
    return String.IsNullOrEmpty(strTestString)? "0": strTestString;
}
Run Code Online (Sandbox Code Playgroud)