gpt4 book ai didi

f# - 这是对查询中的十进制值类型求和的最佳方式吗?

转载 作者:行者123 更新时间:2023-12-04 23:00:31 28 4
gpt4 key购买 nike

当我执行以下求和不可为 null 的小数的查询时,我遇到了错误。当位置/组织组合没有震级值时,震级为空。

let q = query { from m in Measure do
where (locations.Contains(m.Location)
&& organizations.Contains(m.Organization))
sumBy m.Magnitude }

错误:无法将 null 值分配给 System.Decimal 类型的成员,该类型是不可为 null 的值类型。

我通过以下方式解决了这个问题。有更好的方法吗?

let convert (n:Nullable<decimal>) =
let c:decimal = 0M
if n.HasValue then n.Value else c

let q = query { from m in Measure do
let nullable = Nullable<decimal>(m.Magnitude)
where (locations.Contains(m.Location)
&& organizations.Contains(m.Organization))
sumBy (convert(nullable)) }

谢谢。我将查询更改为以下内容。

query {  for m in db.Measurement do
let nullable = Nullable<decimal>(m.Magnitude)
where ( m.Measure = me
&& (if slice.Organization > 0L then organizationUnits.Contains( m.PrimalOrganizationUnit.Value ) else true)
&& (if slice.Location > 0L then locationUnits.Contains(m.PrimalLocationUnit.Value) else true) )
sumByNullable (nullable) }

最佳答案

关于f# - 这是对查询中的十进制值类型求和的最佳方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183470/

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