如何对泛型列表中的项目求和<;T>
本文关键字:求和 lt gt 项目 泛型 列表 | 更新日期: 2023-09-27 18:00:54
以下泛型列表如何通过总成本进行汇总?这意味着有可能将下面的两个成本相加得到一个总数吗?
型号:
public class Product
{
public string Name {get;set;}
public int Cost {get;set;}
}
现在我想在通用列表中使用该模型,如下所示:
public void GetTotal()
{
IList<Product> listOfJediProducts = new List<Product>();
Product newProduct1 = new Product();
newProduct1.Name = "LightSaber";
newProduct1.Cost = 1500;
listOfJediProducts.Add(newProduct1);
Product newProduct2 = new Product();
newProduct2.Name = "R2RobotSpec9";
newProduct2.Cost = 5000;
listOfJediProducts.Add(newProduct2);
}
我该如何返回列表中产品的合计?
listOfJediProducts.Sum(p => p.Cost);
这将在序列中的每个元素上运行选择器lambda表达式(在这种情况下返回Cost(。Sum
函数然后在"隐式返回"的IEnumerable上运行,它显然会计算和并返回它
值得注意的是,上面类似于写作:
listOfJediProducts.Select(p => p.Cost).Sum();
在理解我的第一个例子的作用时,这可能会更加明显(如果不是冗长的话(。
我说"隐式返回"是因为Sum只对IEnumerable数字有意义,内部工作可能更接近于此:
int total;
foreach (Product p in listOfJediProducts)
total += p.Cost;
return total;
else,使用foreach
循环
int total_cost = 0;
foreach (Product p in listOfJediProducts)
{
total_cost+= p.cost;
}