VB.NET Сортировка файлов в каталоге по алфавитно-цифровому признаку

#vb.net #sorting

#vb.net #сортировка

Вопрос:

Как мне отсортировать файлы в этом каталоге ниже по алфавиту и цифре? Пример файла: 12325_2011.jpg

     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim di As New IO.DirectoryInfo(ImagePath)
        Dim imageArray As IO.FileInfo() = di.GetFiles()
        Dim image As IO.FileInfo

        'list the names of all images in the specified directory

        For Each image In imageArray
            CheckBoxList1.Items.Add(image.Name)
        Next
    End If
End Sub
  

Ответ №1:

Просто измените существующий для каждого цикла следующим образом:

 For Each image In imageArray.OrderBy(Function(i) i.Name)
    CheckBoxList1.Items.Add(image.Name)
Next
  

Комментарии:

1. Не могли бы вы объяснить, какая функция (i) i.Name есть?

2. Это лямбда-выражение — маленькая мини-функция без имени, которая сообщает функции OrderBy, как сравнивать элементы в массиве для сортировки.

Ответ №2:

Вы могли бы использовать класс sorted list вместо вашего массива изображений:

http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx

например

 For each Item in di.GetFiles
   'Add image url to sorted list
Next


For Each Item in SortedList
    'Add to checkbox list
Next