Как численно отсортировать массив в Windows Forms ListBox - PullRequest
0 голосов
/ 29 февраля 2020

Моя задача - создать кнопку Сортировка , которая будет принимать массив случайных чисел (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());
        }
    }
}

1 Ответ

0 голосов
/ 29 февраля 2020

Вы можете использовать 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);

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...