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

C# 三元表达式中Null Conditional用法 空值返回null的单行重构方案

解决方案

可以直接改写为单行代码,仅需要在原有逻辑基础上补充空值分支判断即可,改动量非常小:

Type = rec["IsFlagged"] == null ? null : rec["IsFlagged"].ToString() == "True" ? "Yes" : "No";

如果你想保留原代码里的空传播写法避免重复取值,也可以用下面的版本:

Type = rec["IsFlagged"]?.ToString() is string val ? val == "True" ? "Yes" : "No" : null;

如果使用C# 9及以上版本,用switch表达式写可读性会更高:

Type = rec["IsFlagged"]?.ToString() switch
{
    "True" => "Yes",
    "False" => "No",
    _ => null
};

原代码问题说明

你之前的旧代码中,当rec["IsFlagged"]为null时,rec["IsFlagged"]?.ToString() == "True"的结果为false,会直接返回No,不符合空值返回null的需求。上述几种单行写法的逻辑和你现在写的分支判断完全一致,不需要调整原有业务判断规则。

内容的提问来源于stack exchange,提问作者N. Kaufman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:06:03