4

次のコードがあります。

リストボックスに値を挿入してから、値をアルファベット順に並べ替えて、同じリストボックスに再表示できるようにしようとしています。何らかの理由でコードが機能しません (エラーはありません - ボタンを押すとリストボックスがクリアされます)

protected void sortButton_Click(object sender, ImageClickEventArgs e)
{
    string[] movieArray = new string [cartListBox.Items.Count];

    for (int i = 0; i < cartListBox.Items.Count; i++)
    {
        movieArray[i] = cartListBox.Items[i].ToString();
    }

    Array.Sort(movieArray);

    cartListBox.Items.Clear();

    for (int i = 0; i < cartListBox.Items.Count; i++)
    {
        cartListBox.Items.Add(movieArray[i].ToString());
    }

}
4

4 に答える 4

1

これをより現代的な方法で行うことで、ループとバグをすべて回避できます。

var items = cartListBox.Items
    .Select(item => item.ToString())
    .OrderBy(x => x);

cartListBox.Items.Clear();

cartListBox.Items.AddRange(items);
于 2013-05-23T11:10:36.583 に答える