【问题标题】:Average value of <List> C#<List> C# 的平均值
【发布时间】:2016-09-21 07:44:50
【问题描述】:

我需要将平均值从&lt;List&gt; 写入textBox1 的代码。单击button1 2 次textBox1 应该给我来自rotorSpeed 的ElapsedMilliseconds 平均值。

    Stopwatch rotorSpeed = new Stopwatch();
    List<double> list = new List<double>();
    double av;

    private void button1_Click(object sender, EventArgs e)
    {
        int i = 0;
        i++;
        do
        {
            if (rotorSpeed.IsRunning)
            {
                rotorSpeed.Stop();
                list.Add(rotorSpeed.ElapsedMilliseconds);
                continue;
            }
            else
            {
                rotorSpeed.Reset();
                rotorSpeed.Start();
            }
        } while (i == 2);

        av = list.Average();
        textBox1.Text = av.ToString();
    }
}

【问题讨论】:

  • 你的问题缺少问题...
  • 虽然 (i >= 2) 在这里永远不会是真的,你想做什么?
  • @sachin 是的,我 == 2 对不起
  • @rltcounter221 即使 i==2 永远不会是真的,你永远不会在循环中增加计数器。
  • @sachin 这就是我需要你帮助的原因。我想要的是点击 2 次按钮,我得到文本框的毫秒平均值

标签: c# list button stopwatch


【解决方案1】:

你应该把 i 的初始化放在事件之外

Stopwatch rotorSpeed = new Stopwatch();
List<double> list = new List<double>();
double av;
int i = 0;

private void button1_Click(object sender, EventArgs e)
{
    i++;
    if (i == 2)
    {
        if (rotorSpeed.IsRunning)
        {
            rotorSpeed.Stop();
            list.Add(rotorSpeed.ElapsedMilliseconds);
            continue;
        }
        else
        {
            rotorSpeed.Reset();
            rotorSpeed.Start();
        }
        i=0;
    } 

    av = list.Average();
    textBox1.Text = av.ToString();
}

}

【讨论】:

  • 这仍然会无限期地挂起。我从来没有达到 2 所以循环继续进行
  • 设置i=0...当然也可以改成if :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 2022-11-03
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多