使用array.sort对数组进行排序

时间:2013-09-30 03:11:03

标签: c# arrays sorting

我有一个列表框,我想从a-z对该列表框中的每个项目进行排序,并在按钮中分配这些代码。我需要将数组分配给列表框吗?然后使用循环 ?

这就是我所做的:

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

    for (int i = 0; i < sort.Length; i++)
    {
        sort[i] = cartListBox.Items[i].ToString();
        Array.Sort(sort);
    }
}

然而,当我点击按钮时,它什么也没做。

2 个答案:

答案 0 :(得分:3)

你需要在循环外排序。

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

    for (int i = 0; i < sort.Length; i++)
    {
        sort[i] = cartListBox.Items[i].ToString();
    }
    Array.Sort(sort);

    for (int i = 0; i < sort.Length; i++)
    {
        // reset the order for the cartListBox collection according to the sort array, if needed
    }
}

答案 1 :(得分:1)

您的ListBox有Sorted Property可用于启用排序

cartListBox.Sorted = true;

从上面的MSDN链接:

  

使用Sorted属性在ListBox中按字母顺序自动排序字符串。当项目添加到已排序的ListBox时,项目将移动到已排序列表中的相应位置。将项目添加到ListBox时,首先对项目进行排序然后添加新项目会更有效。

     

将Sorted设置为true的ListBox不应使用DataSource属性绑定到数据。要在绑定的ListBox中显示已排序的数据,您应该绑定到支持排序的数据源,并让数据源提供排序。