我正在显示三个文本框,只能获得数字。 用户可以在一个文本框中输入值,也可以按任意顺序输入两个或三个值。 我想计算在C#中的那些文本框中输入的值的平均值。
例如。如果任何一个文本框包含值,则必须基于1(值/ 1)计算平均值。
如果两个文本框包含值,则必须使用2(value1 + value2)/ 2
计算平均值如果三个文本框包含值,则必须使用3计算平均值 (值1 +值2 +值3)/ 3。
任何人都知道如何用更少的代码实现这一目标?
答案 0 :(得分:2)
您可以将这些值放入数组或列表中,并使用LINQ的Enumerable.Average
。或者使用以下使用int.TryParse
的查询计算它,并假设TextBox在同一容器控件中(如Panel
或GroupBox
):
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)
最简单的方法是创建一个包含值的列表,并利用框架计算该列表中包含的数字的平均值。
在步骤中,不要用勺子喂你复制可粘贴的代码:
相关阅读材料: