#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