根据针对同一问题给出的回答:How to check IEnumerable<DataRow> returns null or has any row?以及我发现的大部分google结果,您都应该使用.Any()验证集合是否至少包含一个项目。如何检查空的IEnumerable <DataRow>集合?
但是,在下面的代码中,.Any()会抛出“未设置为对象实例的对象引用”异常。有人能指出我做错了什么吗?
DataSet navData = GetNavigationData();
bool linkFound = false;
if(!CommonLibrary.IsDataSetEmpty(navData))
{
IEnumerable<DataRow> foundLinks = from link in navData.Tables[0].AsEnumerable()
where link.Field<string>("URL").ToLower() == searchURL
select link;
linkFound = (foundLinks.Any());
}
显示出异常从任何()调用来有关堆栈跟踪:
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
at MyMethod in MySource.cs:line 259
出于好奇,为什么围绕'Any()'调用的括号? – BoltClock
@bolt:布尔伏都教。它实际上是'(false!= x.Any())'的简称' –
什么是异常类型? –