将List <int?>隐式转换为List <int>

Meg*_*ind 21 c# linq linq-to-entities list

我正在使用Linq to Entities.

拥有一个具有可为空的列"SplOrderID"的实体"Order".

我查询我的订单列表

List<int> lst = Orders.where(u=> u.SplOrderID != null).Select(u => u.SplOrderID);
Run Code Online (Sandbox Code Playgroud)

我理解这是因为SplOrderID是一个可以为空的列,因此select方法返回nullable int.

我只是期待LINQ有点聪明.

我该怎么处理?

Guf*_*ffa 44

在选择属性时,只需获取可空的值:

List<int> lst =
  Orders.Where(u => u.SplOrderID != null)
  .Select(u => u.SplOrderID.Value)
  .ToList();
Run Code Online (Sandbox Code Playgroud)