快速注意 - 我对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),就停止接受更多输入并显示(在输入字段上方)所有输入数字的总和。)
我仍在努力弄清楚任务的第一部分。
我遇到的问题 - - 即使输入不同的数字,显示的第一个数字也为零。 - 如果输入的数字比以前输入的数字少,似乎吐出随机数。
非常感谢任何帮助或指示!
答案 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();
}
}
}