作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有以下代码:
if (Model.Products?.Cards?.Any())
{
}
如果我尝试这样做,它会抛出一个错误:
Cannot convert bool? to bool
搜索了这个之后,我不确定为什么会抛出错误,它允许我在哪里做
if (Model.Products?.Cards?.Count > 0)
{
}
为什么在这种情况下我无法使用 .Any()
- 为什么它被归类为可为 null 的 bool 但计数不是可为 null 的 int?
最佳答案
仅仅因为它是有效的而不是在 Nullable<int>
上和 int
:
if (null > 0)
{
}
null
被认为是 Nullable<int>
在这里,比较Nullable<int>
与 int
没关系。 (必读:How does comparison operator works with null int?)
但不是 if (null)
.一个if
语句需要一个 bool 值。
所需的解决方法可能是:
if (Model.Products?.Cards?.Any() ?? false)
{ }
关于c# - 为什么 ?.Any() 被归类为可为空的 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880915/
我是一名优秀的程序员,十分优秀!