![](/img/trans.png)
[英]How can I use the Nullable Operator with the Null Conditional operator?
[英]How can I use the conditional null operator to check for null string?
我試圖執行LINQ到對象查詢,如下所示:
var c1 = allCustomers
.Where(x => x.CompanyName.Replace("'", "").StartsWith(searchText))
.ToList();
只要CompanyName不為null,就可以正常工作。
因此,我認為對於新的空條件運算符來說,這似乎是理想的選擇! 只需更改為:
var c1 = allCustomers
.Where(x => x.CompanyName?.Replace("'", "").StartsWith(searchText))
.ToList();
一切都會正常!
相反,我得到了錯誤:
Cannot implicitly convert type 'bool?' to 'bool'. An explicit conversion exists (are you missing a cast?)
我不太確定如何在這里完成我想要的。 在這種情況下,我將如何使用null條件?
您需要合並運算符將三態轉換為適當的布爾值。
var c1 = allCustomers
.Where(x => x.CompanyName?.Replace("'", "").StartsWith(searchText) ?? false)
.ToList();
我叫bool?
三態,因為它可以具有三個值: true
, false
和null
; 因此,轉換bool?
轉化為bool
是一種狹窄的轉化,需要進行明確的處理。
您需要更多問號! 我認為您也需要空合並,因為x.CompanyName?.Replace
現在也可以返回空。
(x.CompanyName?.Replace("'", "") ?? string.Empty).StartsWith(searchText))
?? string.empty
?? string.empty
強制將其設置為非null字符串,該字符串現在支持.startswith
使用??
運算子,例如:
Where(x => x.CompanyName?.Replace("'", "").StartsWith(searchText) ?? false)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.