Jon*_*Jon 27 .net c# linq .net-3.5 c#-3.0
我有以下代码,我试图找出如何将我的所有值相乘IEnumerable<int>
.
我认为可能有一种乘法方法,就像Sum一样.我想我可以对每个项目做一个foreach,但这些天这看起来很单调乏味.
有什么建议?
//1:2:6
string[] pkgratio = comboBox1.SelectedRow.Cells["PkgRatio"].Value.ToString().Split(':');
var ints = pkgratio.Select(x => int.Parse(x));
int modvalue = ints....
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 47
您正在寻找的是聚合功能
int modValue = ints.Aggregate(1, (x,y) => x * y);
Run Code Online (Sandbox Code Playgroud)
Aggregate函数接受初始累加器值,然后对枚举中的每个值应用操作,从而创建新的累加器值.这里我们从1开始,然后将ever值乘以累加器的当前值.
注意:如果ints
值为空,则返回1.这可能适用于您的情况,也可能不正确.