gpt4 book ai didi

c# - LINQ Max 扩展方法在空集合上出错

转载 作者:IT王子 更新时间:2023-10-29 04:36:01 27 4
gpt4 key购买 nike

我有以下查询:

var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num);

如果没有 9 的 Id,我会得到一个错误。如果没有 Id 为 9,我喜欢将结果默认为 0。

我试过:

var maxNumber = dbContext.Where(a => a.Id == 9).Max(a => a.Sample_Num) ?? 0; 

以及其他变体,但无法使其正常工作

最佳答案

你可以使用 Any 来检查是否有匹配的元素:

int maxNumber = 0;
var id9 = dbContext.Where(a => a.Id == 9);
if(id9.Any())
{
maxNumber = id9.Max(a => a.Sample_Num);
}

或者你可以使用 DefaultIfEmpty(defaultValue) :

int maxNumber = dbContext
.Where(a => a.Id == 9)
.Select(a => a.Sample_Num)
.DefaultIfEmpty(0)
.Max();

关于c# - LINQ Max 扩展方法在空集合上出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414674/

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