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

如何使用LINQ排除1月、2月并筛选指定number值的数据

解决LINQ查询排除1、2月记录的问题

你之前的思路明显走偏了——用Min(x => x.workshopDate.Month)拿到最小月份(也就是1月)后,反而筛选了1月的记录,这和你要排除1、2月的需求完全相反。咱们直接调整筛选逻辑就能搞定:

正确的实现代码

List<Vehiculos> ob = JsonConvert.DeserializeObject<List<Vehiculos>>(response.Content);

// 第一步:先过滤掉1月和2月的记录,只保留3月及以后的数据
var filteredVehicles = ob.Where(o => o.workshopDate.Month >= 3).ToList();

// 注意处理筛选后无数据的情况,避免调用Max时抛出异常
if (filteredVehicles.Any())
{
    var m = filteredVehicles.Max(x => x.number);
    Num = m;
    // 绑定符合条件的记录:number最大且月份在3月及以后
    dataGridView5.DataSource = filteredVehicles.Where(o => o.number == m)
                                               .OrderByDescending(o => o.number)
                                               .ToList();
}
else
{
    // 没有符合条件的数据时,清空数据源并设置默认值
    dataGridView5.DataSource = null;
    Num = 0; // 也可以根据业务需求设置其他默认值
}

逻辑说明

  1. 精准过滤月份:直接用o.workshopDate.Month >= 3排除1、2月的记录,确保后续操作只针对3月及以后的有效数据。
  2. 空值保护:添加filteredVehicles.Any()判断,防止筛选后没有数据时调用Max方法抛出异常。
  3. 聚焦目标记录:在过滤后的数据集里找最大的number,再筛选出对应记录绑定到DataGridView,完全匹配你要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:58:11