我有以下代码:
if (Model.Products?.Cards?.Any())
{
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试这个它会抛出一个错误:
不能转换bool?布尔
搜索到这个之后,我不确定为什么会抛出错误,因为它允许我这样做
if (Model.Products?.Cards?.Count > 0)
{
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能.Any()在这种情况下使用- 为什么它被归类为可空的bool但计数不是可以为空的int?
Pat*_*man 13
仅仅因为它是有效的,所以比a Nullable<int>和int:
if (null > 0)
{
}
Run Code Online (Sandbox Code Playgroud)
null被认为是Nullable<int>在这里,Nullable<int>与之比较int是可以的.(必读:比较运算符如何与null int一起使用?)
但不是if (null).一个if语句需要布尔值.
所需的解决方法可能是:
if (Model.Products?.Cards?.Any() ?? false)
{ }
Run Code Online (Sandbox Code Playgroud)