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 に答える