我有以下数据:
Number可以为NULL
我正在编写LINQ语句以获得以下数字:
需要的结果:290
我的LINQ语句目前看起来像这样:
(from b in data
where b.Number.HasValue
select new
{
Number = b.Number.Value,
b.Factor
}).Sum(o => o.Number * (o.Factor / 100));
我收到以下错误:
转换为值类型'Decimal'失败,因为具体化值 一片空白。结果类型的泛型参数或查询必须 使用可空类型。
答案 0 :(得分:5)
这可以通过像这样强制转换Sum的内容来修复:
(from b in data
where b.Number.HasValue
select new
{
Number = b.Number.Value,
b.Factor
}).Sum(o => (decimal?)(o.Number * ((decimal)o.Factor / 100))) ?? 0;
(注意:我在写这个问题时找到了答案,并认为我不妨制定答案并将其发布给其他人查找)