【发布时间】:2022-01-22 07:54:08
【问题描述】:
我正在检查 C# 中的两个条件:
if (result.Data.Count > 0)
{
if(result.Data[0].AdditionalData != null)
{
// To Do
}
}
我的困惑是在单个 if 条件下检查这些是否有更好的方法?
我正在尝试使用 Null-Condition 运算符,但没有成功。 Null-Conditional operator in MSDN
【问题讨论】:
-
if(result.Data.FirstOrDefault()?.AdditionalData != null) -
Data也可以为空吗?在这种情况下,您应该添加Data?.。如果Data可能为空,您可以使用Data?[0],但如果它不为空而是为空,您将得到一个索引越界异常,所以如果您尝试过但没有成功,那就对了:它不会工作。 -
它可能适用于你的情况(在寻找第一个值时),但如果你想要第二个等,那么你需要一些不同的东西。
-
“更好”是什么意思?您的代码很容易理解,而空合并运算符可能不是。如果出现以下情况,您也可以使用短路:
if (result.Data.Count > 0 && result.Data[0].AdditionalData != null) -
谁投票赞成关闭?这是一个完全有效的问题,很容易回答,没有任何意见。