Comments on: Сортировка директорий на C# http://vitiy.info/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b9-%d0%bd%d0%b0-c/ Programming, architecture and design (С++, QT, .Net/WPF, Android, iOS, NoSQL, distributed systems, mobile development, image processing, etc...) Sat, 11 Oct 2008 06:12:43 +0000 hourly 1 https://wordpress.org/?v=5.4.2 By: SilverCloud http://vitiy.info/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b9-%d0%bd%d0%b0-c/#comment-570 Sat, 11 Oct 2008 06:12:43 +0000 http://vitiy.info/?p=45#comment-570 GetDirectories ничего не сортирует, он просто выдаёт список в том виде, в каком директории хранятся в файловой системе. Просто NTFS хранит файлы уже отсортированными по алфавиту (в целях оптимизации скорости поиска), а FAT – в порядке их добавления в родительскую директорию. Другими словами (как это ни странно), NTFS лишена части возможностей FAT’а 🙂

]]>
By: Victor Laskin http://vitiy.info/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b9-%d0%bd%d0%b0-c/#comment-112 Thu, 05 Jun 2008 18:31:30 +0000 http://vitiy.info/?p=45#comment-112 Ну это повседневная практика обращения с этими методами намекает очень настойчиво 😉 и обманывает при этом…

]]>
By: Yuri Zholobov http://vitiy.info/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b9-%d0%bd%d0%b0-c/#comment-111 Thu, 05 Jun 2008 17:06:03 +0000 http://vitiy.info/?p=45#comment-111 Зато во втором методе кроме дефолтного компаратора нельзя ничего сделать. Максимум это orderby d.Name.ToUpper().

p.s. А где хотя бы намекается что GetDirectories() и пр. возвращают в каком-то порядке?

]]>
By: Victor Laskin http://vitiy.info/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b9-%d0%bd%d0%b0-c/#comment-109 Wed, 04 Jun 2008 17:32:50 +0000 http://vitiy.info/?p=45#comment-109 второй метод особенно радует глаз

ps. С файлами таже проблема, что и с директориями. Обнаружил что она прекрасно проявляется если работать с флешкой.

]]>
By: Yuri Zholobov http://vitiy.info/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b9-%d0%bd%d0%b0-c/#comment-107 Wed, 04 Jun 2008 16:01:57 +0000 http://vitiy.info/?p=45#comment-107 Упс. Генерик скобки сьелись. 🙁 Ещё раз попробую:

DirectoryInfo[] dirs1 = dir.GetDirectories().OrderBy<DirectoryInfo, string>(
di => di.Name, StringComparer.Create(CultureInfo.CurrentCulture, true)).ToArray();

var dirs2 = from d in dir.GetDirectories() orderby d.Name select d;

]]>
By: Yuri Zholobov http://vitiy.info/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b9-%d0%bd%d0%b0-c/#comment-106 Wed, 04 Jun 2008 15:59:26 +0000 http://vitiy.info/?p=45#comment-106 В рамках .NET 3.5 можно сделать еще двумя способами, один гибче и элегантней другого. 🙂

DirectoryInfo[] dirs1 = dir.GetDirectories().OrderBy(
di => di.Name, StringComparer.Create(CultureInfo.CurrentCulture, true)).ToArray();

IOrderedEnumerable dirs2 =
from d in dir.GetDirectories() orderby d.Name select d;

]]>