You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何简化判断字符串是否为空的If语句?

简化C#字符串非空判断的几种方法

嘿,针对你想简化这段字符串非空判断代码的需求,这里有几个实用且简洁的写法,比原有的if-else清爽多了:

1. 三元条件运算符(最推荐的简化方式)

这是处理这种二元判断最常用的简化手段,直接一行代码就能完成赋值逻辑:

string test = "It's a test";
string test2 = test != "" ? test : "It's null";

如果你的场景里需要同时处理null值(毕竟实际开发中字符串可能为null而非仅仅是空字符串),可以用C#内置的string.IsNullOrEmpty方法来更严谨地判断:

string test2 = string.IsNullOrEmpty(test) ? "It's null" : test;

要是还需要过滤掉全是空白字符的情况(比如" "),就换成string.IsNullOrWhiteSpace:

string test2 = string.IsNullOrWhiteSpace(test) ? "It's null" : test;

2. 空合并运算符(适合侧重处理null的场景)

??运算符会在左侧表达式为null时返回右侧的值,不过它只识别null,不会处理空字符串""。如果你的逻辑只需要处理null,写法会很简洁:

string test2 = test ?? "It's null";

如果要同时处理空字符串和null,可以先把空字符串转换为null再使用??:

string test2 = (test == "" ? null : test) ?? "It's null";

不过这种写法不如三元运算符直观,所以更推荐第一种方法。

关于你提到的Regex和Switch语句

  • 用Regex.IsMatch来判断空字符串完全是大材小用,不仅效率低,还会让代码变得冗余,完全没必要~
  • 你提到的SELECT CASE对应C#里的switch语句,虽然也能实现,但对于这种简单的二元判断,switch反而会让代码更冗长,比如:
string test2;
switch (test)
{
    case "":
        test2 = "It's null";
        break;
    default:
        test2 = test;
        break;
}

显然不如三元运算符简洁,所以不推荐用在这个场景里。

内容的提问来源于stack exchange,提问作者Aousaf Rashid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:04:54