【发布时间】:2013-11-10 10:04:19
【问题描述】:
准备好MSDN Docs的any()函数的文档后
如果找到匹配条件的对象,Any() 应该返回 true
我有一个文章列表,在要在列表中添加文章之前,我想检查这篇文章是否已经在我的列表中。
foreach (Article a in _lstArticleTemp)
{
if (_lstMarqueTemp.Any(item => item == a.Marque))
_lstMarqueTemp.Add(a.Marque);
}
但它说:表达式的结果总是“假”,因为 int 类型的值永远不会等于 int 类型的 null?
【问题讨论】:
-
在哪里你得到这个错误?
-
a.Marque或item是否可以为空? -
Marque 包含一个 int? Id 和字符串名称
-
@Seb: int?是所谓的 Nullable 类型,文档在这里:msdn.microsoft.com/en-us/library/b3h38hb0.aspx。您将需要使用 Nullable 类型的
HasValue和Value成员。 -
@devshorts 但是
==运算符应该被取消以进行可空比较。new int() == new int?()编译得很好,没有警告。