对于如果字符串一个衬垫不为空,否则空(One liner for If string is not

2019-07-28 10:41发布

我通常使用这样的事情在整个应用程序的各种原因:

if (String.IsNullOrEmpty(strFoo))
{
     FooTextBox.Text = "0";
}
else
{
     FooTextBox.Text = strFoo;
}

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

public string NonBlankValueOf(string strTestString)
{
    if (String.IsNullOrEmpty(strTestString))
        return "0";
    else
        return strTestString;
}

并使用它,如:

FooTextBox.Text = NonBlankValueOf(strFoo);

好像有什么事,这是C#的一部分会为我做到这一点我一直在想。 东西,可以这样调用:

FooTextBox.Text = String.IsNullOrEmpty(strFoo,"0")

第二个参数是所述返回值,如果String.IsNullOrEmpty(strFoo) == true

如果不是有没有人有他们使用任何更好的方法?

Answer 1:

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

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

string output = somePossiblyNullString ?? "0";

您的需求,具体而言,根本就条件运算符bool expr ? true_value : false_value bool expr ? true_value : false_value ,您可以使用该设置或返回一个值只是if / else语句块。

string output = string.IsNullOrEmpty(someString) ? "0" : someString;


Answer 2:

您可以使用三元运算符 :

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

FooTextBox.Text = string.IsNullOrEmpty(strFoo) ? "0" : strFoo;


Answer 3:

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

 public static string NonBlankValueOf(this string source)
 {
    return (string.IsNullOrEmpty(source)) ? "0" : source;
 }

现在,您可以像使用任何字符串类型使用

FooTextBox.Text = strFoo.NonBlankValueOf();


Answer 4:

这可以帮助:

public string NonBlankValueOf(string strTestString)
{
    return String.IsNullOrEmpty(strTestString)? "0": strTestString;
}


Answer 5:

老问题,但认为我会添加此助阵,

#if DOTNET35
bool isTrulyEmpty = String.IsNullOrEmpty(s) || s.Trim().Length == 0;
#else
bool isTrulyEmpty = String.IsNullOrWhiteSpace(s) ;
#endif


文章来源: One liner for If string is not null or empty else