請參閱此示例:
var list = new List<string?>();
foreach (string item in list.Where(i => i != null))
{
if (item.Length == 2)
{
...
}
}
在這個示例中,我在兩個地方獲得了可能的空參考。該foreach變數和反參考Length在if。第二個我可以通過添加一個該死的(null-forgiving)運算子來輕松修復,如下所示:item!.Length
有沒有辦法對第一個做同樣的事情?我知道我可以將其標記為可空字串并再次檢查,但是,我已經檢查過了。
uj5u.com熱心網友回復:
使用 應用過濾時Where,會消除所有空值,但這不會更改值的型別。
您所需要的只是將過濾后的結果轉換為正確的型別:
foreach (string item in list.Where(i => i != null).Select(x => x!))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/388620.html
