簡體   English   中英

當使用 linq 語句查詢時,Object 屬性突然變為 null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM