1

我有一个列表框,其中包含 B1、B2、...B7000...等列表项值。每次将项目附加到列表框时,我都需要对整个列表框进行排序。

目前,它们以 B1、B100、B1000、B2、B200 等方式排序,这是不合逻辑的。

我怎样才能排序,使它像 B1,B2,B3 ......?

我一直在尝试使用 LINQ,但它不起作用:

List<ListItem> list = new List<ListItem>(ListBox7.Items.Cast<ListItem>());
list = list.OrderBy(li => li.Text).ToList<ListItem>();
ListBox7.Items.Clear();
ListBox7.Items.AddRange(list.ToArray<ListItem>());

请帮忙!我到处找,找不到解决办法!

4

1 回答 1

3
var list = listBox.Items.Cast<ListItem>()
            .OrderBy(item => int.Parse(item.Text.TrimStart('B')));

listBox.Items.Clear();
listBox.Items.AddRange(list.ToArray()); 
于 2012-09-17T03:30:47.473 回答