Я пытаюсь хорошо тренироваться, но я не уверен, что будет наиболее оптимальным, я надеюсь, что некоторые из вас, более опытные разработчики, могут помочь через ваши данные Структурные знания :-)Структура данных для сопоставления URL-адресов или локальных путей
По существу у меня есть список путей (например, C: \ inetpub \ wwwroot \, C: \ www \ websites \ vhosts \ somesite.com \, D: \ www-mirror \ websites \ vhosts \ somesite.co.uk), я должен проверить, что текущий файл, над которым я работаю (скажем C: \ inetpub \ wwwroot \ styles \ style.css), существует в предварительно сконфигурированном списке путей.
Так что я изначально думал, что я должен был бы взаимодействовать с моим списком элементов и делать CurrentFilename.StartsWith (PreconfigureListOfPathsPathName). Но я регулярно повторяю этот список, и он замедляется, поскольку список может содержать иногда 10, а также несколько раз 1000 (клиенты на сервере).
Что вы предлагаете в качестве быстрого решения этой проблемы? Я пишу на C# 3.5, это всего лишь небольшая (но критическая) часть проекта.
Я думал о бинарных деревьях поиска, разбивая пути, а затем делаю treemap и итерации по каждому пути. Но я не уверен, что это правильно, поскольку у нас может быть множество узлов.
D:\www-mirror\websites\vhosts\somesite.co.uk\
D:\www-mirror\websites\vhosts\somesite.com\
D:\www-mirror\websites\vhosts\somesite.org\
D:\www-mirror\websites\vhosts\somesite.pl\
Дерево карта:
www-mirror->websites->vhosts->somesite* (has 4 nodes)
www-mirror->blah->woah->okay
Но это выглядит немного шаткий.
Спасибо, это кажется выполнимым! –
Добро пожаловать! Я рад, что это помогает. –