gpt4 book ai didi

c# - 在 LINQ 中左加入 OrderBy

转载 作者:太空狗 更新时间:2023-10-30 00:44:15 24 4
gpt4 key购买 nike

我有两个列表。第一个是从 API (APITasks) 中提取的任务列表,第二个是我在本地 SQL 数据库中的任务列表。该工具允许用户“声明”APITask 并通过存储 TaskIssueId 在本地记录该声明。

有时会发生 APITask 被删除的情况。我的工具有代码会注意到这一点,并在用户列出所有“声明的”任务时向用户提及。现在我遇到的问题是让用户的任务通过 APITasks 排序(按 AnotherInternalId 排序,这是另一个 Id,复杂且不相关),如果任何任务不再可用,仍然显示它(我的代码捕获异常并显示一条消息)。

这是我的 sql 查询:

myTasks = (from m in myTasksFiltered
join d in APITasks on m.TaskIssueId equals d.TaskIssueId
into joinedData
from d in joinedData.DefaultIfEmpty()
let index = (int?)d.AnotherInternalId ?? 0
orderby index
select m).ToList();

thread帮助创建了该查询,但我一直收到空引用异常错误,因为当查询到达 APITask 中不存在的本地任务时,d 变为空,一切都从那里爆炸。

最佳答案

您需要检查 d 是否不为空,而不是 AnotherInternalId

myTasks = (from m in myTasksFiltered
join d in APITasks on m.TaskIssueId equals d.TaskIssueId
into joinedData
from d in joinedData.DefaultIfEmpty()
let index = d == null ? 0 : d.AnotherInternalId
orderby index
select m).ToList();

关于c# - 在 LINQ 中左加入 OrderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349832/

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