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

如何使用Linq对Person列表按Id排序后按JoinedDate日期范围过滤

Linq实现代码与说明
  • 首先请确保代码文件顶部引入Linq命名空间:
    using System.Linq;

  • 按照「先按Id排序、再筛选日期范围」的需求,实现代码如下(示例起止日期可根据实际业务调整):

// 定义日期筛选边界
DateTime fromDate = new DateTime(2021, 1, 15);
DateTime toDate = new DateTime(2021, 3, 15);

// 方法链写法(推荐)
List<Person> filteredPersons = persons
    .OrderBy(p => p.Id) // 按Id升序排序,如需降序请改用OrderByDescending方法
    .Where(p => p.JoinedDate >= fromDate && p.JoinedDate <= toDate) // 包含起止日期边界,如需排除边界可调整运算符
    .ToList();
  • 如果你习惯用查询表达式写法,也可以用如下实现:
DateTime fromDate = new DateTime(2021, 1, 15);
DateTime toDate = new DateTime(2021, 3, 15);

var query = from p in persons
            orderby p.Id
            where p.JoinedDate >= fromDate && p.JoinedDate <= toDate
            select p;
List<Person> filteredPersons = query.ToList();
  • 性能优化提示:

如果业务没有强制要求排序必须在筛选前执行,建议调整为「先筛选再排序」的顺序,数据量大时可以减少排序的元素数量,大幅提升执行效率,示例如下:

List<Person> filteredPersons = persons
    .Where(p => p.JoinedDate >= fromDate && p.JoinedDate <= toDate)
    .OrderBy(p => p.Id)
    .ToList();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:36:06