gpt4 book ai didi

c# - 包含空值的 Linq 查询

转载 作者:行者123 更新时间:2023-11-30 13:16:53 24 4
gpt4 key购买 nike

var records = from entity in q1.question_papers
select new
{
QuestionPaperID = entity.QUESTION_PAPER_ID,
SubjectID = entity.SUBJECT_ID,
PreviousAttempts = SubIdAtt.Where(c => c.SUBID == entity.SUBJECT_ID)
.Select(c => c.ATT)
.FirstOrDefault(),
};

上面是我的 linq 查询,在 PreviousAttempts 字段中,如果不满足 where,我将获得空值。因此,我不想包含 null,如果它包含 null,我想更改它,如果它不包含非 null 值,则恢复原始值。

由于我无法为每条记录更改 PreviousAttempts,我该如何实现?

最佳答案

您可以使用 null-coalescing运算符在这里,例如

PreviousAttempts = SubIdAtt.Where(c => c.SUBID == entity.SUBJECT_ID)
.Select(c => c.ATT)
.FirstOrDefault() ?? 0;

或者,如果您想将其全部保留为 LINQified,请使用 DefaultIfEmpty方法例如

PreviousAttempts = SubIdAtt.Where(c => c.SUBID == entity.SUBJECT_ID)
.Select(c => c.ATT)
.DefaultIfEmpty(0)
.FirstOrDefault();

关于c# - 包含空值的 Linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639651/

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