使用Linq Lambda函数将可为Null的小数和百分比相加
本文关键字:小数 百分比 Null Lambda Linq 函数 使用 | 更新日期: 2023-09-27 17:49:18
更新
我是在要求。。。
我有一份赞成的声明。FOR语句通过reportList生成。reportList对象是设置为数据库中特定视图的列表类型。
FOR循环遍历reportList并创建一个报告。在报告的最后,我必须输出一个可以为null的十进制值的百分比。
for (int i = 0; i < reportList.Count() - 1; i++)
{
print report totals...
lastly print percentage...
htw.Write(reportList.Where(x => x.Name == reportList[i].Name && x == reportList[i].Value).Select(a => a.RequiredValue == null ? 0 : a.RequiredValue).Sum(a => a.Value * 100));
}
评论后更新
在评论之后,我已经将空逻辑替换为…
htw.Write(reportList.Where(x => x.Name == reportList[i].Name && x == reportList[i].Value).Select(a => a.RequiredValue ?? 0 : a.RequiredValue).Sum(a => a.Value * 100));
话虽如此,我的问题是,这是使用Linq和Lambda输出百分比的最佳方式吗?有没有我不用的话务员?是否需要求和?我只需要将小数转换为百分比,并考虑到null。
试试这个:
reportList.Select(g => g.X ?? 0).Sum();
或者:
reportList.Select(g => g.X == null ? 0 : g.X * 100).Sum();