我有一个列表框,列表项值如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>());
请帮忙!我到处寻找,找不到解决办法!
答案 0 :(得分:3)
var list = listBox.Items.Cast<ListItem>()
.OrderBy(item => int.Parse(item.Text.TrimStart('B')));
listBox.Items.Clear();
listBox.Items.AddRange(list.ToArray());