以下是我的问题:
“使用记事本将以下值放在文本文件中: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)
{
}
}
答案 0 :(得分: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循环中跟踪运行总计,因此对于您添加的每个项目,您应将其附加到该总计,然后除以列表中的项目数。
例如,如果列表中包含以下项目:
您希望列表中的平均值为182.5(10 + 20 + 300 + 400)/ 4项
答案 1 :(得分:2)
很简单,但我觉得回答你的功课很糟糕。将数字转换为数组或列表,然后使用Linq的平均方法:
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx