无法在c#中找出这个公式

Age*_*een 2 c# for-loop formula generic-list winforms

对不起,我是编码的新手,在尝试一切之后我无法弄清楚这一点!我有6个屏蔽文本框,用户输入分贝值,应该将它们保存到列表中,将每个输入到公式中并输出求和的分贝值,但它只是将变量添加为6,这是计数列表而不是实际值.当我尝试一个foreach循环时,它使它成为一个无限循环.

private void dBAddButton_Click(object sender, EventArgs e)
    {         
        List<double> addDBList = new List<double>();
        double final;
        double added = 0;

        addDBList.Add(double.Parse((dB1.Text)));
        addDBList.Add(double.Parse((dB2.Text)));
        addDBList.Add(double.Parse((dB3.Text)));
        addDBList.Add(double.Parse((dB4.Text)));
        addDBList.Add(double.Parse((dB5.Text)));
        addDBList.Add(double.Parse((dB6.Text))); 

            for (int i = 0; i < addDBList.Count; i++)
           {
            added += Math.Pow(10, (i / 10));
           }

        final = 10 * Math.Log10(added);

        totaldB.Text = final.ToString();                  
    }
Run Code Online (Sandbox Code Playgroud)

}

公式基本上是 10log[10^(first value/10)+10^(second value/10)...+10^(nth value/10)]

Fly*_*del 7

added += Math.Pow(10, (addDBList[i] / 10));
Run Code Online (Sandbox Code Playgroud)


Eso*_*ame 7

added += Math.Pow(10, (i / 10));
Run Code Online (Sandbox Code Playgroud)

这是你的问题.i是数组的索引位置,而不是实际值.你想用这个:

added += Math.Pow(10, (addDBList[i] / 10));
Run Code Online (Sandbox Code Playgroud)