如何对 Windows Forms ListBox 中的数组进行数字排序

How to Numerically Sort An Array in Windows Forms ListBox

我的任务是创建一个 排序 按钮,它将获取随机数数组(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());
        }
    }
}

您可以使用 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);

 }