Сортировка списка List - C#
Формулировка задачи:
Задача
- Получить отсортированный список полных имен файлов. Проблема в том, что когда файлы с однотипными названиями и номером на конце, сортировка проходит не так как хотелось бы. "*\файл 35.mp3" будет позже, чем "*\файл 34.mp3",но
раньше, чем "*\файл 4.mp3" Т.Е. 39<4<40 Как исправить это? Часть кода: folderBrowserDialog1.ShowDialog(); //Открыть окно указания папки
FolderPath = folderBrowserDialog1.SelectedPath;
if (FolderPath == "") return;
List<string> Files = new List<string>();
Files.AddRange(Directory.GetFiles(FolderPath, "*.mp3")); //Получение списка файлов
Files.Sort(); Решение задачи: «Сортировка списка List»
textual
Листинг программы
public class LogicalStringComparer : IComparer<string>
{
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
static extern int StrCmpLogicalW(string x, string y);
public int Compare(string x, string y)
{
return StrCmpLogicalW(x, y);
}
}