简化 C# 中的条件三元表达式

时间:2021-06-07 23:44:02

标签: c# linq asp.net-core

我有一个条件如下图所示:

x.Customer == null ? false : x.Customer.CustomerData.IsSet

我的 IDE 对 Simplify conditional ternary expression 说。有没有其他方法可以在 dotnet 中简化此操作?我最近开始使用 c# world,对此我有点困惑。

我们也可以像在一行中添加一个空检查 CustomerData 一样吗?

我是这样试的-

Customer

当我尝试这个时,它给出了一个错误 -

<块引用>

表达式树 lambda 不能包含条件访问 表达

2 个答案:

答案 0 :(得分:1)

表达式的结果是布尔值,因此无需编写三元运算符。你可以这样写:

x.Customer != null && x.Customer.CustomerData.IsSet

答案 1 :(得分:0)

试试吧

bool result =  x.Customer?.CustomerData?.IsSet ?? false

因此,如果 Customer 或 CutomerData 中的任何一个为 null,则默认为 false,否则将返回 IsSet。