将所有值乘以IEnumerable <int> </int>

时间:2010-09-14 09:14:36

标签: c# .net linq .net-3.5 c#-3.0

我有以下代码,我正在尝试找出如何将IEnumerable<int>中的所有值相乘。

我认为可能有一种乘法方法,就像Sum一样。我想我可以对每个项目进行预测,但这些日子看起来很乏味。

有什么建议吗?

//1:2:6
string[] pkgratio = comboBox1.SelectedRow.Cells["PkgRatio"].Value.ToString().Split(':');
var ints = pkgratio.Select(x => int.Parse(x));         

int modvalue = ints....

1 个答案:

答案 0 :(得分:41)

您正在寻找的是聚合功能

int modValue = ints.Aggregate(1, (x,y) => x * y);

Aggregate函数接受初始累加器值,然后对枚举中的每个值应用操作,从而创建新的累加器值。这里我们从1开始,然后将ever值乘以累加器的当前值。

注意:如果值为ints,则返回1.这可能适用于您的情况,也可能不正确。