因此,我试图运行Windows窗体,该窗体是从numericUpDown框(从WindowsForm)中添加一个数字,并将其放在列表框中的(我的代码可以完成)。列表框中的示例:
7 5 10 1
,当您单击排序时,它应按以下顺序产生:
1 5 7 10
运行代码并单击排序按钮(button1)对列表框中的整数进行排序时,我得到:
“ System.InvalidException:”无法将类型为'System.Decimal'的对象转换为类型为'System.String'。
我不确定这是什么意思。...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ListBoxSorter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//int num = (int)listBox1.Items[0];
//listBox1.Items.Add(num);
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
//int number = (int)numericUpDown1.Value;
}
private void button1_Click(object sender, EventArgs e)
{
//listBox1.Items.Sort(numericUpDown1.Value);
List<int> ListB = new List<int>();
foreach (string x in listBox1.Items)
{
ListB.Add(Convert.ToInt32(x));
}
ListB.Sort();
}
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Add(numericUpDown1.Value);
}
}
}
答案 0 :(得分:1)
尝试以下操作:(未经编译或调试)
private void button1_Click(object sender, EventArgs e)
{
List<int> ListB = new List<int>();
foreach (string x in listBox1.Items)
{
ListB.Add(Convert.ToInt32(x));
}
ListB.Sort();
listBox1.Items.Clear() //important!
foreach (int x in ListB)
{
listBox1.Items.Add(x.ToString());
}
}