所以我做了一个实用的工作,涉及要求用户输入0
和100
之间的分数。该计划将跟踪已输入的分数,总分(所有分数的总和)和平均分数。
为了计算总分,我想出了一个使用for循环的想法,它会在我的列表框中循环并将每个分数添加到一个变量(下面)。
int sTotal = 0;
for(int i = 0; i < lstScores.Items.Count; i++)
{
//Calculation occurs here
}
txtScoreTotal.Text = Convert.ToString(sTotal);
事情是,我不知道该怎么做。我试过搜索无济于事。任何帮助将不胜感激。
答案 0 :(得分:2)
int sTotal = 0;
int Average = 0;
for(int i = 0; i < lstScores.Items.Count; i++)
{
bool result = Int16.TryParse(lstScores.Items[i],out int res);
if (result)
{
sTotale += res;
}
}
Average = sTotal / lstScores.Items.Count;
txtScoreTotal.Text = Convert.ToString(sTotal);
答案 1 :(得分:0)
最简单的方法是使用这样的foreach循环:
int sTotal = 0;
foreach (string item in lstScores.Items)
{
sTotal += Int32.Parse(item);
}
txtScoreTotal.Text = Convert.ToString(sTotal);
答案 2 :(得分:0)
见这个
int i = 0, result = 0;
while (i < lstScores.Items.Count)
{
result += Convert.ToInt32(lstScores.Items[i++]);
}
txtScoreTotal.Text = Convert.ToString(result);
我没有尝试过,但你也可以尝试1行解决方案
var sum = lstScores.Items.OfType<object>().Sum(x => Convert.ToInt32(x));
如果总和超过
,则需要处理异常int.Max