You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C# LINQ按含小数点分组排序EF查询结果?

Entity Framework LINQ 实现按是否含小数点分组排序

你需要先按是否包含小数点分组排序(带小数点的组靠前),再对每组内的元素按列值字符串排序,可以通过OrderBy结合ThenBy实现:

var sortedData = yourDbContext.YourEntitySet
    // 先按是否含小数点排序:含小数点的排在前面
    .OrderBy(x => !x.Column.Contains("."))
    // 再对同一分组内的元素按列值本身排序
    .ThenBy(x => x.Column);

逻辑说明

  • OrderBy(x => !x.Column.Contains(".")):带小数点的元素,Contains(".")返回true,取反后为false;不带小数点的元素取反后为true。布尔值排序中false优先于true,因此带小数点的组会整体排在前面。
  • ThenBy(x => x.Column):对每个分组内的元素,按列值的字符串顺序排序,满足组内排序需求。

用你提供的测试数据验证,最终会得到期望的结果:

6.16.30
6.16.40
7.15.20
6010
6020
7030

内容的提问来源于stack exchange,提问作者Jonas Mohammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:55:05