我有以下的linq查询:
private List<Port> DoCountriesSearch(string search)
{
return Countries.Where(x => x.CountrySearch.ToLower().Contains(search.ToLower())).ToList();
}
我有一个名为Countries
的对象,它是一个包含各种属性的Port对象列表,每个Port对象都包含一个名为CountrySearch
的属性,您可以在这里看到:
但是,当我尝试在Countries
上运行linq查询时,CountrySearch
属性突然变为null,从而引发null引用异常:
我以前从来没有和linq有过这样的问题。我错过了什么?
2条答案
按热度按时间qco9c6ql1#
您的列表有很多条目。在某些条目中,
CountrySearch
不是null
,在其他条目中,它是null
。这里LINQ没有发生什么神奇的事情。可以使用空条件运算符修复此问题
注意,这里需要
== true
,因为我们必须科普null
值。另见:
up9lanfz2#
这个问题完全是我的错。我有一个隐藏的方法,它将Port对象附加到列表的底部,而这些对象不是来自数据库的,因此这些项的CountrySearch字段确实为空。