我需要找到列表框中输入的成绩的平均值请帮助! [英] I need to find the average of the grades that are entered in the listbox PLEASE HELP!

查看:52
本文介绍了我需要找到列表框中输入的成绩的平均值请帮助!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FindAverage
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int grade, average;

        private void button2_Click(object sender, EventArgs e)
        {
            grade = Int32.Parse(textBox1.Text);

            LstGrades.Items.Add(grade);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            average = LstGrades.Items. / LstGrades.Items.Count;
        }
    }
}

推荐答案

有几种方法可以做到这一点,但是最简单的就是使用foreach循环:

There are a couple of ways to do this, but the simplest is just to use a foreach loop:
int total = 0;
foreach (object o in LstGrades.Items)
   {
   total += (int) o;
   }

然后除以计数得到平均值。

And then divide by the count to get the average.


你可以使用LINQ

You can use LINQ
var sum = LstGrades.Items.Cast<int>().Sum();
average = sum / LstGrades.Items.Count;



或简单循环


or simple loop

int sum = 0;
foreach (var item in LstGrades.Items)
{
    int result;
    if(int.TryParse(item.ToString(), out result))
            sum += result;
}
average = sum / LstGrades.Items.Count;


这个怎么样?



What about this?

var sum = 0;

for(var count = 0; count < LstGrades.Items.Count; count++)
{
    sum += int.Parse(LstGrades.Items[count].ToString());
}

var average = sum / LstGrades.Items.Count;


这篇关于我需要找到列表框中输入的成绩的平均值请帮助!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆