gpt4 book ai didi

c# - Lambda 表达式仅从集合中选择某些项目

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:25 25 4
gpt4 key购买 nike

我有一个循环遍历 UserTaskQueueJoint 实体的 foreach 循环。这个实体有三个字段

  1. UserTaskQueueJoinID

  2. 用户ID

  3. 任务队列ID

它有一个到 taskQueues 和 Tasks 的导航属性

我正在通过这些运行 foreach,只想取出任务队列中的任务。所以当我通过下面的这个循环时,我通过了我的 foreach 循环两次,第一次我得到一个任务..然后第二次我得到了额外的两个任务,但它删除了第一个任务。我确定我不应该使用 where 子句,我认为我应该使用 select 或 contains 或 'in' 但我坚持如何实现。

foreach (var _taskQueueJoin in UserTaskQueueJoin)
{
_query = _query.Where(x => x.AssignedToTaskQueueID == _taskQueueJoin.TaskQueueID);
}

最佳答案

假设我正确理解你的问题,你可以用这个替换整个循环:

var TaskQueueIds = _taskQueueJoin.Select(t => t.TaskQueueID).ToArray()
_query = _query.Where(x => TaskQueueIds.Contains(x.AssignedToTaskQueueID))

它首先将所有任务队列 ID 放在一起。然后它使用单个 .Where() 过滤 _query

关于c# - Lambda 表达式仅从集合中选择某些项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com