我正在尝试执行 LINQ to 对象查询,如下所示:
var c1 = allCustomers
.Where(x => x.CompanyName.Replace("'", "").StartsWith(searchText))
.ToList();
只要 CompanyName 不为空,就可以正常工作。
所以,我认为这似乎是新的空条件运算符的完美位置!只需更改为:
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();
I call bool?
三态,因为它可以有三个值:true
, false
and null
;因此,转换bool?
to bool
是需要显式处理的缩小转换。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)