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

如何用LINQ筛选含TaskStatus为0的UserTask的UserTaskGroup集合

正确LINQ筛选实现方案

核心思路

筛选出包含至少一个TaskStatus为0的UserTask的UserTaskGroup,核心是用Where过滤分组集合,结合Any方法检查分组内的任务列表是否存在符合条件的元素。

代码实现

// 直接使用枚举值0的写法
var filteredTaskGroups = _retData.Data.Data
    .Where(group => group.UserTasks.Any(task => task.TaskStatus == 0))
    .ToList();

如果TaskStatus枚举有对应命名(比如TaskStatus.NotStarted对应值0),更推荐使用枚举名称,提升代码可读性和可维护性:

// 使用枚举命名的写法
var filteredTaskGroups = _retData.Data.Data
    .Where(group => group.UserTasks.Any(task => task.TaskStatus == TaskStatus.NotStarted))
    .ToList();

常见错误说明

  • 误用All方法:All要求分组内所有任务都满足条件,和需求完全相悖。
  • 低效使用Count:group.UserTasks.Count(task => task.TaskStatus == 0) > 0会遍历整个任务集合,而Any是短路求值,找到第一个符合条件的元素就停止遍历,性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:34:52