1. ホーム
  2. c#

One liner for If string is not null or empty else (文字列が空でない場合)

2023-09-30 10:26:36

質問

私は通常、アプリケーション全体を通して様々な理由でこのようなものを使用します。

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")

の場合、2番目のパラメータは返される値です。 String.IsNullOrEmpty(strFoo) == true

もしそうでなければ、誰かが使っているもっと良い方法があるのでしょうか?

どのように解決するのですか?

ヌル合体演算子( ?? ) がありますが、これは空の文字列を処理しません。

もし、NULL文字列の処理にのみ興味があるのであれば、次のように使用します。

string output = somePossiblyNullString ?? "0";

特に必要なものには、条件演算子 bool expr ? true_value : false_value があり、値を設定したり戻したりする if/else 文のブロックを簡略化するために使うことができます。

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