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

本文关键字:一个 输入 一次 字段 单个 整数 | 更新日期: 2023-09-27 18:34:14

快速说明 - 我对 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(,就停止接受更多输入并显示(在输入字段上方(所有输入数字的总和。

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

我有的问题 ---显示的第一个数字是零,即使我键入了不同的数字。--如果我输入的数字比以前输入的数字少,它似乎会吐出随机数。

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

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

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();
     }
    }
}