checkedlistbox添加其他数字

时间:2013-04-16 15:05:27

标签: c# listbox sum checkedlistbox

这是我的第一篇文章。 我正在尝试在Visual C#中的checkedlistbox中创建多个总和。有108个数字,每行一个,我试图将检查的项目与其余每一个相加并将其打印在文本框中。

我已经这样做了,但我认为这是不正确的。 这实际上是总和,但也与数字本身和整个事情108次

我想在复选框中添加带有其余数字的已选号码。

private void button2_Click(object sender, EventArgs e)
{
   foreach(string checkednumber in checkedlistbox1.CheckedItems)
   {
      double x = Convert.ToDouble(checkednumber);

      double a = 0;
      for (double y = 0; y < checkedlistbox1.Items.Count; ++y)
      {
         foreach (string othernumbers in checkedlistbox1.Items)
         {
            double z = Convert.ToDouble(othernumbers);
            sum = x + z;
            string str = Convert.ToString(sum);
            listbox1.Items.Add(str);
         }
      }
   }  
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您只想对已检查项目的数字求和?

double sum = 0;

foreach(object checkedItem in checkedlistbox1.CheckedItems)
{
    try 
    {
        sum += Convert.ToDouble(checkedItem.ToString()); 
    }
    catch (FormatException e) {} //catch exception where checkedItem is not a number

    listbox1.Items.Add(sum.ToString());
} 

你的问题非常不清楚,我不确定这是否是你想要的。

答案 1 :(得分:0)

您也可以使用linq来实现它。

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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var result = from num in this.checkedListBox1.CheckedItems.OfType<string>()
                         select Convert.ToInt32(num);
            this.textBox1.Text = result.Sum().ToString();
        }
    }
}