在C#中对列表框项进行排序

Sak*_*vel 8 c# asp.net

我开发了一个网页,其中显示了从数据库中提取的列表框项.动态地我添加了一些项目.它添加到列表框的末尾,所以我想在添加项目后对列表框项进行排序.我尝试Arraylist排序,但它不起作用.

Car*_*cke 22

我知道这个问题已经很老了,但我正在寻找一种没有比较类,ArrayLists等的方法.所以我想我会粘贴我用于其他人的方法:

请注意,我的方法使用LINQ to Objects,因此它只适用于较新版本的Framework.

// get a LINQ-enabled list of the list items
List<ListItem> list = new List<ListItem>(ListBoxToSort.Items.Cast<ListItem>());
// use LINQ to Objects to order the items as required
list = list.OrderBy(li => li.Text).ToList<ListItem>();
// remove the unordered items from the listbox, so we don't get duplicates
ListBoxToSort.Items.Clear();
// now add back our sorted items
ListBoxToSort.Items.AddRange(list.ToArray<ListItem>());
Run Code Online (Sandbox Code Playgroud)


eug*_*neK -1

您的意思是通过 Javascript 动态添加项目到列表中,还是使用 ASP.NET 控件回发某种类型的项目?

如果您使用 Javascript 动态添加,那么您的答案将使用 jQuery 排序,如果使用 ASP.NET 回发后,您应该使用位于 System.Collections.Generic 的 List 对象。