c# - 如何使用 Lambda 表达式重写此计算属性?
问题描述
我现在正在学习 C# .net。我被要求将此计算属性更改为 lambda 表达式。我在这里卡了很长时间,请帮助。
public class ClientList : BindingList<Client>
{
public decimal TotalSales
{
get
{
decimal totalSales = 0.00m;
for (int i = 0; i < this.Count(); i++)
{
totalSales += this[i].Sales;
}
return totalSales;
}
}
}
解决方案
LINQ 是您的朋友。使用 Sum() 函数,您可以对 'this' BindingList 中的所有元素应用投影:
return this.Sum(i => i.Sales);
这意味着 - 检查“this”列表中的每个项目,并“求和”Sales 属性。您可能必须“使用 System.Linq;”。这是假设 Sales 已经是十进制属性。
如果我是你,我会阅读更多关于 Linq 的内容 - 一些非常简洁的转换,你可以应用一些代码来实现很多目标 - 尝试从“选择”和“在哪里”开始。
推荐阅读
- sql - SQL_Case 和何时
- c++ - Make a class template std::is_swappable
- java - Hibernate列别名生成问题
- angular - net::ERR_ABORTED 404(未找到)。供应商.js
- pywinauto - pywinauto - 在文件打开窗口中按“组织”按钮
- javascript - Bulma CSS 列在移动设备上反转
- css - 对齐左标签元素
- php - 从 2.2 升级到 2.3.6 版本后 Magento 2 paypalplus 问题
- ruby-on-rails - rails记录有效但载波未上传
- powershell - 使用 PowerShell 监控最新日志