Muliplying все значения в IEnumerable <int>
У меня есть следующий код, и я пытаюсь выяснить, как умножить все значения в моем IEnumerable.
Я думал, что там может быть метод Multiply, подобный 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....
Ответы
Ответ 1
То, что вы ищете, это функция Aggregate
int modValue = ints.Aggregate(1, (x,y) => x * y);
Функция Aggregate принимает начальное значение аккумулятора и затем применяет операцию к каждому значению в перечислении, создавая новое значение аккумулятора. Здесь мы начинаем с 1, а затем умножаем значение на текущее значение аккумулятора.
Примечание. В случае пустого значения ints
это вернет 1. Это может быть или не быть правильным для вашей ситуации.