我想制作第一次点击开始rotorSpeed秒表然后第二次点击添加rotorSpeed.ElapsedMilliseconds到的代码list.在第二次点击重置秒表开始计时一次,然后在第三次点击再加rotorSpeed.ElapsedMilliseconds到list.代码中没有错误,但是当我调试它时,我收到错误double average = list.Average();
Stopwatch rotorSpeed = new Stopwatch();
List<double> list = new List<double>();
private void button1_Click(object sender, EventArgs e)
{
i++;
//Getting rotor speed
if (i != 2)
{
if (rotorSpeed.IsRunning)
{
rotorSpeed.Stop();
list.Add(rotorSpeed.ElapsedMilliseconds);
rotorSpeed.Start();
}
else
{
rotorSpeed.Reset();
rotorSpeed.Start();
}
}
double average = list.Average();
textBox2.Text = average.ToString();
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
> System.Core.dll中发生了未处理的"System.InvalidOperationException"类型异常
附加信息:序列不包含任何元素
Rah*_*hul 14
你list是空的,所以要求Average()它抛出异常.更改以下行
double average = list.Average();
Run Code Online (Sandbox Code Playgroud)
至
double average = list.Count > 0 ? list.Average() : 0.0;
Run Code Online (Sandbox Code Playgroud)
if (list.Count > 0)
{
textBox2.Text = list.Average().ToString();
}
Run Code Online (Sandbox Code Playgroud)