在单个字段中接受整数作为输入,一次一个

时间:2013-10-07 01:52:07

标签: c#

快速注意 - 我对c#很新,所以如果这很简单,我会道歉。

我很难在书中完成一个简单的c#任务。

我的任务 - 创建一个Windows应用程序,将整数作为输入,一次一个地接受 领域。按钮应该导致在输入字段正下方显示该数字,但仅限于 如果它大于当前显示的数字(或者它是处理的第一个数字)。立刻 已处理零(0),停止接受更多输入并显示(在输入字段上方) 所有输入数字的总和。

这是我到目前为止所拥有的 -

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


namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += new System.EventHandler(button1_Click);
            listofNumbers = new List<int>();
        }

        List<int> listofNumbers;

        private void button1_Click(object sender, EventArgs e)
        {
            //convert input to integer
            int orginalInput = int.Parse(textBox1.Text);

            //add numbers to list
            listofNumbers.Add(orginalInput);

            string txt = "";

            foreach (int originalNumber in listofNumbers)
            {
                //find numbers greater than previously entered number
                int higherNumber = listofNumbers.Find(item => item > originalNumber);

                if (listofNumbers.Count == 1 || originalNumber < higherNumber)
                {
                    txt += higherNumber + " ";
                    label1.Text = txt;
                }


            }

            textBox1.Clear();


        }
    }
} 

我还没有开始添加输入(只要处理了零(0),就停止接受更多输入并显示(在输入字段上方)所有输入数字的总和。)

我仍在努力弄清楚任务的第一部分。

我遇到的问题 - - 即使输入不同的数字,显示的第一个数字也为零。 - 如果输入的数字比以前输入的数字少,似乎吐出随机数。

非常感谢任何帮助或指示!

1 个答案:

答案 0 :(得分:1)

if(!listofNumbers.Contains(0)){ // check for already zero entered or not
    int input = int.Parse(textBox1.Text);
    listofNumbers.Add(input); 
    if(input==0){  // if zero entered calculate the sum and set it as label text
       int sum = listofNumbers.Sum();
       label1.Text = sum.ToString();
    }else // otherwise campare with last label value and entered number and set the label
    {
     int maxNo = int.Parse(label1.Text);
     if(input>maxNo)
     {
        label1.Text = input.ToString();
     }
    }
}