首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将列表框中项的值添加到C#中的局部变量中?

如何将列表框中项的值添加到C#中的局部变量中?
EN

Stack Overflow用户
提问于 2018-02-13 15:03:17
回答 3查看 115关注 0票数 0

因此,我正在做一个实用的工作,要求用户输入0100之间的分数。该程序将跟踪已输入的分数的数量,总分(所有分数的总和)和平均分数。

为了计算总分,我提出了使用for循环的想法,这个循环将遍历我的列表框,并将每个分数添加到一个变量中(如下所示)。

代码语言:javascript
运行
复制
int sTotal = 0;
for(int i = 0; i < lstScores.Items.Count; i++)
{
    //Calculation occurs here
}
txtScoreTotal.Text = Convert.ToString(sTotal);

问题是,我不知道怎么做。我已经尝试过寻找,但没有结果。任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-13 16:41:46

代码语言:javascript
运行
复制
    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);
票数 2
EN

Stack Overflow用户

发布于 2018-02-13 16:00:15

最简单的方法是使用这样的foreach循环:

代码语言:javascript
运行
复制
        int sTotal = 0;
        foreach (string item in lstScores.Items)
        {
            sTotal += Int32.Parse(item);
        }
        txtScoreTotal.Text = Convert.ToString(sTotal);
票数 0
EN

Stack Overflow用户

发布于 2018-02-13 16:09:11

看这个

代码语言:javascript
运行
复制
int i = 0, result = 0;
while (i < lstScores.Items.Count)
{
   result += Convert.ToInt32(lstScores.Items[i++]);
}

txtScoreTotal.Text = Convert.ToString(result);

我没有试过以下方法,但您也可以尝试1行解决方案。

代码语言:javascript
运行
复制
var sum = lstScores.Items.OfType<object>().Sum(x => Convert.ToInt32(x));

如果sum超出int.Max,则需要处理异常

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48769765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档