我正在运行一个使用本地“let”变量计算本地值以与传递到查询中的参数进行比较的LINQ查询。
我有以下查询:
Items = from lead in Items
let total = lead.NurtureActions.Count(q => !q.Deleted)
let completed = lead.NurtureActions.Count(nurtureAction => nurtureAction.Completed && !nurtureAction.Deleted)
let percentage = Math.Round((Double)((completed/total)*100),0,MidpointRounding.ToEven)
where
total>0 &&
percentage == progress
select lead;
上面真正重要的部分是以下一行:
let percentage = Math.Round((Double)((completed/total)*100),0,MidpointRounding.ToEven)
如您所见,在我的查询中,我正在将该查询的结果与传递到我的函数中的“progress”进行比较。
例如:我可能会传入值“8”,因此“progress”将具有值“8”。但是计算出的“percentage”可能最初为“8.223”,但我需要将其四舍五入为“8”。
我认为我做得很正确,但由于某种原因,有些东西没有正常工作。
有什么想法可能导致四舍五入失效吗?我也尝试过四舍五入的“AwayFromZero”选项,但也不起作用。
编辑 对于那些要求更多信息的人,我不确定它正在计算什么值。我没有调试LINQ查询的经验,也不知道从何处开始查找该值。如果我知道如何获取它,我会提供它。