繁体   English   中英

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

[英]sorting array with array.sort

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

这就是我做的:

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);
    }
}

但是,当我点击按钮时,它什么也没做。

你需要在循环外排序。

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
    }
}

ListBox有一个Sorted属性 ,可用于启用排序

cartListBox.Sorted = true;

从以上MSDN链接:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM