gpt4 book ai didi

c# - 在 C# 中使用 lambda 检查 LINQ Sum() 方法中的值

转载 作者:行者123 更新时间:2023-11-30 19:03:13 25 4
gpt4 key购买 nike

我必须求和一个对象中的所有值。这些值从数据库中检索并存储在 List<T> 中。 .如果其中一个值等于 -1,我想在总和中使用 0。

这是我用来执行任务的代码:

lprod_projectionActualvalue = lprod_monthlyReport.Sum(m => new
{
Monthly_ActualValue = (m.Monthly_ActualValue != -1) ?
m.Monthly_ActualValue : 0F
});

Monthly_ActualValuefloat? 类型。编译器给我一个错误,指出我无法将匿名类型转换为 float ?。这很奇怪,因为我在 Select 子句中使用了相同的代码而没有出现任何错误。可能是什么问题?

谢谢

弗朗切斯科

最佳答案

您正在使用 new {} 关键字和括号创建一个新的匿名类型,它永远不会转换为 float 。如果您希望总和为 float ,请删除匿名类型声明并仅指定生成 float 的表达式,如下所示:

lprod_projectionActualvalue = lprod_monthlyReport.Sum(m => (m.Monthly_ActualValue != -1) ? m.Monthly_ActualValue : 0F);

关于c# - 在 C# 中使用 lambda 检查 LINQ Sum() 方法中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980011/

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