如何对字母数字列表框进行排序?

时间:2012-09-17 03:24:31

标签: c# asp.net linq sorting listbox

我有一个列表框,列表项值如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>());

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

1 个答案:

答案 0 :(得分:3)

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

listBox.Items.Clear();
listBox.Items.AddRange(list.ToArray());