[英]Object property suddenly becomes null when queried with a linq statement
我有以下 linq 查詢:
private List<Port> DoCountriesSearch(string search)
{
return Countries.Where(x => x.CountrySearch.ToLower().Contains(search.ToLower())).ToList();
}
我有一個名為Countries
的 object,它是具有各種屬性的端口對象列表。 每個端口 object 都包含一個名為CountrySearch
的屬性,您可以在此處看到:
但是,當我嘗試在Countries
上運行 linq 查詢時, CountrySearch
屬性突然變為 null,從而引發 null 引用異常:
我以前從未遇到過 linq 的這個問題。 我錯過了什么?
您的列表有很多條目。 在某些條目中CountrySearch
不是null
,在其他條目中它是null
。 LINQ 並沒有發生什么神奇的事情。
您可以使用Null 條件運算符解決此問題
private List<Port> DoCountriesSearch(string search)
{
return Countries.Where(
x => x.CountrySearch?.Contains(
search,
StringComparions.CurrentCultureIgnoreCase) == true
).ToList();
}
請注意,這里需要== true
,因為我們必須處理null
值。
也可以看看:
這個問題完全是我的錯。 我有一個隱藏的方法,將 Port 對象附加到不是來自數據庫的列表底部,因此這些項目的 CountrySearch 字段確實是 null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.