【问题标题】:How to Numerically Sort An Array in Windows Forms ListBox如何在 Windows 窗体 ListBox 中对数组进行数字排序
【发布时间】:2020-02-28 23:14:04
【问题描述】:

我的任务是创建一个 排序 按钮,该按钮将采用随机数数组(15 个元素)并按降序对它们进行排序,并将其显示在消息框中。这是我到目前为止所拥有的。提供的任何帮助都会很棒!

namespace ArrayArgument
{
    public partial class ArrayArgumentRandom : Form
    {
        int[] numbers = new int[15];
        public ArrayArgumentRandom()
        {
            InitializeComponent();
        }

        private void goButton_Click(object sender, EventArgs e)
        {
            // Clearing list box.
            outputListBox.Items.Clear();

            // Array is displayed in the listbox.
            outputListBox.Items.Add("");
            outputListBox.Items.Add("List of 15 Random Numbers");

            Random random = new Random();
            for (int index = 0; index < numbers.Length; index++)
            {
                int randomNumber = random.Next(0, 100);
                numbers[index] = randomNumber;
                outputListBox.Items.Add(randomNumber);
            }
        }

        // Creating method to show maximum number for array.
        private void maxButton_Click(object sender, EventArgs e)
        {
            int maxNumber = numbers[0];
            for (int index = 1; index < numbers.Length; index++)
            {
                if (numbers[index] > maxNumber)
                    maxNumber = numbers[index];
            }
            MessageBox.Show("Max Number is: " + maxNumber);
        }

        // Creating method to show minimum number for array.
        private void minButton_Click(object sender, EventArgs e)
        {
            int minNumber = numbers[0];
            for (int index = 1; index < numbers.Length; index++)
            {
                if (numbers[index] < minNumber)
                    minNumber = numbers[index];
            }
            MessageBox.Show("Min Number is: " + minNumber);
        }

        private void exitButton_Click(object sender, EventArgs e)
        {
            // Closing Form
            this.Close();
        }

        private void sortButton_Click(object sender, EventArgs e)
        {
            randomNumber Sorting = new randomNumber();

            foreach (var o in outputListBox.Items)
            {
                Sorting.Add(o);
            }
            Sorting.Sort(ReverseSort());
        }
    }
}

【问题讨论】:

    标签: c# arrays sorting listbox


    【解决方案1】:

    您可以使用 Array.Reverse,然后使用 string.Join。代码将如下所示:

      private void sortButton_Click(object sender, EventArgs e)
      {
         var numberToShow =  new int[15];
         Array.Copy(numbers, numberToShow , 15)
         Array.Sort(numberToShow)
         Array.Reverse(numberToShow);
    
         var sortedArray = string.Join(",", numberToShow.Select(x => x.ToString()).ToArray());
         MessageBox.Show("Sorted descending: " + sortedArray);
    
     }
    

    【讨论】:

    • 谢谢!我不断收到“长度”的错误(声明它不包含长度的定义)和最终输出ListBox.Items [i](无法将对象转换为int)
    • 我已经更新为使用数字了,这样更简洁,现在试试吧。
    猜你喜欢
    • 2012-09-29
    • 2015-12-18
    • 2010-10-22
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多