因此,我正在做一个实用的工作,要求用户输入0和100之间的分数。该程序将跟踪已输入的分数的数量,总分(所有分数的总和)和平均分数。
为了计算总分,我提出了使用for循环的想法,这个循环将遍历我的列表框,并将每个分数添加到一个变量中(如下所示)。
int sTotal = 0;
for(int i = 0; i < lstScores.Items.Count; i++)
{
//Calculation occurs here
}
txtScoreTotal.Text = Convert.ToString(sTotal);问题是,我不知道怎么做。我已经尝试过寻找,但没有结果。任何帮助都将不胜感激。
发布于 2018-02-13 16:41:46
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);发布于 2018-02-13 16:00:15
最简单的方法是使用这样的foreach循环:
int sTotal = 0;
foreach (string item in lstScores.Items)
{
sTotal += Int32.Parse(item);
}
txtScoreTotal.Text = Convert.ToString(sTotal);发布于 2018-02-13 16:09:11
看这个
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));如果sum超出
int.Max,则需要处理异常
https://stackoverflow.com/questions/48769765
复制相似问题