我有以下代码,我正在尝试找出如何将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....
答案 0 :(得分:41)
您正在寻找的是聚合功能
int modValue = ints.Aggregate(1, (x,y) => x * y);
Aggregate函数接受初始累加器值,然后对枚举中的每个值应用操作,从而创建新的累加器值。这里我们从1开始,然后将ever值乘以累加器的当前值。
注意:如果值为ints
,则返回1.这可能适用于您的情况,也可能不正确。