Сортировка в форме C#

Помогите решить вопрос. При нажатии на кнопку генерации получается массив и выводится на экран, с этим проблем нет. Но как при нажатии на "сортировка" вывести отсортированный массив в другой textBox? введите сюда описание изображения

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


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

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        int[] array = new int[20];
        Random rand = new Random();
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = rand.Next(-20, 100);
            textBox1.Text += " " + array[i];
        }
    }
    private void button2_Click(object sender, EventArgs e)
    {
        string a = textBox1.Text;
        textBox2.Text = a;

    }


    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {

    }

    
}

}


Ответы (2 шт):

Автор решения: aepot

Сделайте массив полем

private int[] array = new int[20];

private void button1_Click(object sender, EventArgs e)
{
    Random rand = new Random();
    for (int i = 0; i < array.Length; i++)
    {
        array[i] = rand.Next(-20, 100);
    }
    textBox1.Text = string.Join(" ", array);
}

private void button2_Click(object sender, EventArgs e)
{
    Array.Sort(array); // вместо этого, здесь вы можете вызвать метод своей сортировки
    textBox2.Text = string.Join(" ", array);
}
→ Ссылка
Автор решения: Aarnihauta

Сначала получаем текст и записываем его в переменную str, после этого разделяем полученный текст на основе символа пробела при помощи метода Split().

Полученный результат (string[]) перебираю методом Select из пространства имен System.Linq (необходимо будет подключить сверху using System.Linq).

Параметром является какая-то функция, в моем случае функция, которая конвертит каждый элемент массива в int. Затем применяем метод OrderBy, который на основе какого-то ключа сортирует элементы.

И в конце приводим к массиву с помощью метода ToArray()

private void button2_Click(object sender, EventArgs e)
{
    string str = textBox1.Text;
    
    //отсортированные элементы
    int[] arr = str.Split(' ').Select(x => Convert.ToInt32(x)).OrderBy(x => x).ToArray();

    textBox2.Text = string.Join(" ", arr);
}
→ Ссылка