如何通过Value对包含ListItems的.net Arraylist进行排序

时间:2013-02-20 16:17:22

标签: .net sorting arraylist

 Dim alCustomers as New ArrayList

 Dim li1 As New ListItem("John", 7)
 alCustomers.Add(li1)

 Dim li2 As New ListItem("Abe", 2)
 alCustomers.Add(li2)

如何按值?

对alCustomers arraylist进行排序?

安倍,2

约翰,7

2 个答案:

答案 0 :(得分:1)

在使用.NET 3.5或更高版本的C#中,它可以像这样工作:

// Create a list of ListItem objects
List<ListItem> alCustomers = new List<ListItem>();

// Add the list items
alCustomers.Add(new ListItem("John", 7));
alCustomers.Add(new ListItem("Abe", 2));

var orderedCustomers = alCustomers
    // Order the items by their value...
    .OrderBy(item => item.Value)
    // and convert it to a list.
    .ToList();

不幸的是,因为我使用的Visual Basic的最后一个版本是VB6,我不知道如何翻译它。这是我最好的猜测:

// Create a list of ListItem objects
Dim alCustomers as New List(Of ListItem)

// Add the list items
alCustomers.Add(New ListItem("John", 7))
alCustomers.Add(New ListItem("Abe", 2))

Dim orderedCustomers As List(Of ListItem) = alCustomers
    // Order the items by their value...
    .OrderBy(Function(item As ListItem) item.Value)
    // and convert it to a list.
    .ToList(Of ListItem)()

答案 1 :(得分:1)

使用Linq:

alCustomers = alCustomers.OrderBy(Function(item) item.Value)

此解决方案需要List而不是ArrayList