1. ホーム
  2. c#

[解決済み] NULLかどうかをチェックし、NULLでなければ別の値を代入する最短の方法

2023-01-13 18:33:59

質問

引っ張っている varchar の値を DB から取り出しています。 string であれば、それらを""として代入しています。 null . 現在はこんな感じでやってます。

if (string.IsNullOrEmpty(planRec.approved_by) == true)
  this.approved_by = "";
else
  this.approved_by = planRec.approved_by.toString();

のような一行で行う方法があるように思います。

this.approved_by = "" || planRec.approved_by.toString();

しかし、これを行うための最適な方法を見つけることができません。 もっと良い方法があるのでしょうか、それとも私が持っているものが最良の方法なのでしょうか?

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

これを試してみてください。

this.approved_by = IsNullOrEmpty(planRec.approved_by) ? "" : planRec.approved_by.toString();

他の人が言っているように、null-coalescing演算子を使うこともできます。誰もあなたのコードで動作する例を示していないので、ここに一つ示します。

this.approved_by = planRec.approved_by ?? planRec.approved_by.toString();

しかし,この例では this.approved_by の値が、設定したい値のひとつと同じである場合にのみ動作します。 他のすべてのケースでは、最初の例で示したように、条件演算子を使用する必要があります。