2

这是我的问题的问题:

“使用记事本将以下值放在文本文件中:86、97、144、26。为了简化问题,可以将每个值放在单独的行中。编写 C# 程序从文本文件中检索值并打印值的平均值,格式为小数点后两位。

我已经有文本文件在标题为...“lstBoxNumbers”的列表框中显示四个数字的列表

我假设简单的方法是将它过滤到列表框中的数字并使用 foreach 循环来计算平均值。我决定采用单击按钮的方式,在文本框中显示平均值。这就是我到目前为止所拥有的。

private void btnAverage_Click(object sender, EventArgs e)
{
    //Shows Average Of Numbers From Text File

    decimal average;

    txtAverage.Text = Convert.ToString(0);

    foreach (string itemInList in lstBoxNumbers.Items)
    {

    }
}
4

2 回答 2

2

试试这个:(你必须自己将类型转换为双精度,因为这是家庭作业)

List<double> newNumberList = new List<double>(); // create a new list 

foreach (string itemInList in lstBoxNumbers.Items) // loop round all of your items
{
   newNumberList.Add(itemInList);  // You will have to convert this to a double, since this is homework you can research on how to convert types (Casting)
}   

 double avg = newNumberList.Average(); // Will give you the average you are looking for

请注意,提供的示例使用 LINQ。我假设您的作业将标记在用于计算平均值的算法上。要在不使用 LINQ 的情况下完成此操作,您希望在 foreach 循环中跟踪运行总计,因此对于您添加的每个项目,您应该将其附加到该总计,然后除以列表中的项目数。

例如,如果您的列表中有以下项目:

  • 10
  • 20
  • 300
  • 400

您希望平均值为 182.5 (10 + 20 + 300 + 400) / 列表中的 4 个项目

于 2012-04-30T22:05:45.023 回答
2

容易,但我有点不好意思为你回答你的作业。将数字转换为数组或列表,然后使用 Linq 的 Average 方法:

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx

于 2012-04-30T22:06:56.290 回答