根据C#中的输入数计算平均值

时间:2016-05-20 09:01:31

标签: c#

我正在显示三个文本框,只能获得数字。 用户可以在一个文本框中输入值,也可以按任意顺序输入两个或三个值。 我想计算在C#中的那些文本框中输入的值的平均值。

例如。如果任何一个文本框包含值,则必须基于1(值/ 1)计算平均值。

如果两个文本框包含值,则必须使用2(value1 + value2)/ 2

计算平均值

如果三个文本框包含值,则必须使用3计算平均值 (值1 +值2 +值3)/ 3。

任何人都知道如何用更少的代码实现这一目标?

2 个答案:

答案 0 :(得分:2)

您可以将这些值放入数组或列表中,并使用LINQ的Enumerable.Average。或者使用以下使用int.TryParse的查询计算它,并假设TextBox在同一容器控件中(如PanelGroupBox):

int value = 0;
double average = TextBoxPanel.Controls.OfType<TextBox>() // get all TextBoxes from this panel
    .Where(t => int.TryParse(t.Text, out value))  // which Text is parsable to int
    .Select(t => value)                           // select the value that contains the parsed int
    .Average();                                   // use Enumerable.Average to calculate the average

答案 1 :(得分:1)

最简单的方法是创建一个包含值的列表,并利用框架计算该列表中包含的数字的平均值。

在步骤中,不要用勺子喂你复制可粘贴的代码:

  1. 创建数字列表变量
  2. 对于每个文本框:
    1. 检查文本框是否包含文本
    2. 如果是,请尝试将其解析为数字
    3. 如果成功,请将号码添加到列表
  3. 计算列表中数字的平均值
  4. 相关阅读材料: