Как умножить содержимое list <double>
?Как умножить все элементы в списке парных?
List<double> mult=new List<double>{3, 5, 10};
До сих пор у меня есть:
double r=0.0;
for(int i=0;i<mult.Count;i++)
{
r=mult[i]*mult[(i+1)];
}
Как умножить содержимое list <double>
?Как умножить все элементы в списке парных?
List<double> mult=new List<double>{3, 5, 10};
До сих пор у меня есть:
double r=0.0;
for(int i=0;i<mult.Count;i++)
{
r=mult[i]*mult[(i+1)];
}
Чтобы исправить петли, начните с 1.0
и умножить каждый элемент в списке, как это:
double r = 1.0;
for(int i = 0; i < mult.Count; i++)
{
r = r * mult[i]; // or equivalently r *= mult[i];
}
Но для простоты, вы может использовать небольшой Linq с помощью метода расширения Aggregate
:
double r = mult.Aggregate((a, x) => a * x);
Как работает этот метод Aggregate? – stackptr
@EdwardKarak Метод 'Aggregate' начинается с первого элемента списка и применяет некоторое преобразование (в данном случае, просто умножая) к каждому последующему элементу, используя результат предыдущего преобразования в следующем. Дополнительную информацию см. В документации. –
Как насчет параметров ((a, x) => a * x)? – stackptr
Что вы имеете в виду, умножая? Если вы хотите рассчитать продукт, тогда ваш код будет неправильным, а правильный код будет
double r=1.0;
for(int i=0;i<mult.Count;i++)
{
r *= mult[i];
}
Непонятный вопрос. Чего вы пытаетесь достичь? Вы даже пытались запустить образец кода? –