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