无法显示我的最小值和最大值

时间:2015-01-28 19:09:22

标签: c# winforms

我正在尝试在Windows应用程序表单中创建GUI。我需要这个程序从文本框接受10个数字然后它应该通过单击按钮取消它并在最后一个文本框中删除最小和最大数字。我是编码的新手,我无法弄清楚如何让这个工作任何帮助将不胜感激。

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

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

    private int[] numbers = new int[10];
    private void button1_Click(object sender, EventArgs e)
    {
        string[] items = textBox1.Text.Split(new char[] { ' ' },     StringSplitOptions.RemoveEmptyEntries);
        if (items.Length != 10)
        {
            MessageBox.Show("There needs to be 10 integers in the textbox, separated by spaces");
            textBox1.Focus();
            return;
        }
        for (int i = 0; i < 10; i++)
        {
            numbers[i] = int.Parse(items[i]);

        int Maxvalue = numbers.Max();//gives the max value.

         int Minvalue = numbers.Min();//gives the min value.

        }

    }
}

3 个答案:

答案 0 :(得分:1)

你需要将你的变量放在循环之外,以获得最小值。最多填充数组后的值:

for (int i = 0; i < 10; i++)
{
     numbers[i] = int.Parse(items[i]);
}


int Maxvalue = numbers.Max();

int Minvalue = numbers.Min();

然后,如果您想在标签中显示它们,只需设置标签Text属性:

// lblMin and lblMax are names of your labels
lblMin.Text = Minvalue.ToString();
lblMax.Text = Maxvalue.ToString();

答案 1 :(得分:0)

我不能用C#,但我猜是这样的:

for (int i = 0; i < 10; i++)
        {
            numbers[i] = int.Parse(items[i]);

        int Maxvalue = numbers.Max();//gives the max value.

         int Minvalue = numbers.Min();//gives the min value.

        }

到此:

for (int i = 0; i < 10; i++)
        {
            numbers[i] = int.Parse(items[i])

        }
 int Maxvalue = numbers.Max();//gives the max value.

         int Minvalue = numbers.Min();//gives the min value.

希望。

答案 2 :(得分:0)

首先,您需要了解LINQ,因为它是操纵对象集合时的最佳选择。

  • 不检查10件物品;这是不必要的。
  • 无需for循环。

这是完成这项工作所必需的。 大多数时候使用var声明变量。 由于隐式类型而文本框仅包含数字;这很有效。 MinMax方法是linq扩展方法。

var numbers = textBox1.Text.Split(' ').Select(int.Parse).ToArray();
var min = numbers.Min();
var max = numbers.Max();

<强>更新

在表单中添加第二个文本框,并在所有内容后添加此行。

textbox2.Text = string.Format("min: {0} max: {1}", min, max);