【发布时间】:2020-12-18 01:30:15
【问题描述】:
我在引用 x 时收到了以下 CS8629 警告。由于select 之前的where 子句,我确信x.Value 永远不会是可为空的引用。这是 C# 空值检查的内在限制吗?除了抑制 CS8629 警告,还有什么方法可以消除它?
var myEnums = myStrings
.Select(x => x.ToEnum<MyEnum>())
.Where(x => x.HasValue)
.Select(x => x.Value) //CS8629 on x.
.ToList();
MyEnum? ToEnum(this string str);
【问题讨论】:
-
github.com/dotnet/roslyn/issues/33539 最好的办法是编写自己的
WhereNotNull扩展方法。