如何在列表框中查找最低,最高和平均值

时间:2017-10-19 17:50:44

标签: c# listbox average highest

我试图创建一个计算并显示列表框中项目的最高,最低和平均值的程序(从txt文件生成的项目)。我终于想出了如何将文本文件加载到列表框中。我一直在寻找大约一个小时的线索,我的所有尝试都让我走到了尽头。

我的列表框名为readListbox,我的最高,最低和平均标签分别称为highestLabel,lowestLabel和averageLabel。我如何创建这个程序。数字为十进制格式。任何帮助将非常感谢。

private void readButton_Click(object sender, EventArgs e)
{
    try
    {
        OpenFileDialog Open = new OpenFileDialog();
        if(Open.ShowDialog() == DialogResult.OK)
        {
            readListbox.Text = Open.FileName;
            string[] lines = System.IO.File.ReadAllLines(Open.FileName);
            readListbox.Items.AddRange(lines);
        }
    }
    catch
    {
        MessageBox.Show("Error");
    }

    }
}
}

1 个答案:

答案 0 :(得分:0)

读取文件的字符串元素后,需要将它们转换为十进制值。此时,您可以使用IEnumerable扩展的内置方法来获取数据

OpenFileDialog Open = new OpenFileDialog();
if(Open.ShowDialog() == DialogResult.OK)
{
        readListbox.Text = Open.FileName;
        string[] lines = System.IO.File.ReadAllLines(Open.FileName);

        decimal[] values = lines.Select(x => decimal.Parse(x)).ToArray();
        labelHigh.Text = values.Max().ToString();
        labelMin.Text = values.Min().ToString();
        labelAvg.Text = values.Average().ToString();        

        readListbox.Items.AddRange(lines);
 }