根據針對同一問題給出的回答: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())'的簡稱' –
什麼是異常類型? –