Linq orderby 对具有一个潜在 null 的多个列



我有一个包含 2 个字段的表:[名称] 和 [订单]

[订单] 可以为空

使用 LINQ,我希望能够按 [顺序] 排序

,或者如果 [顺序] 为空,则按 [名称] 排序

这是我的非工作代码:

from ft in FacetTypes
orderby ft.Name, ft.Order ascending   
select ft

这在 linq 中可能吗?

编辑:

[订单] 是 int?[名称] 是字符串

该查询是实体框架 4 查询。

答:

这就是我最终开始工作的原因。

ft.Order == null ? ft.Name : SqlFunctions.StringConvert((double)ft.Order)

你的意思是如果Order对于单个元素为 null,请使用 Name 代替?如果是这样,我认为您想要:

from ft in FacetTypes
orderby ft.Order ?? ft.Name
select ft;

这只是使用 C# 2 中引入的空合并运算符

这个怎么样:

var resultSet = 
     ft.Order == null ? 
          FacetTypes.OrderBy(item => item.Name) : 
          FacetTypes.OrderBy(item => item.Order);

相关内容

  • 没有找到相关文章

最新更新