Я хочу максимально эффективно хранить все каталоги на большом диске в памяти, а также иметь возможность извлекать каталог по его полному пути.В каждом каталоге есть поля для его имени (а не для полного пути), указатель на своего родителя и список подкаталогов.Как вы думаете, куда идти?
Как я вижу, есть несколько способов:
a) Сохраните полные пути к каждому каталогу в словаре и выполните простой поиск,Плюсы: быстро, Минусы: каждая строка полного пути занимает ненужный и избыточный объем памяти
b) Сохраните только фактическое имя каталога в словаре со списком всех каталогов с этим именем, затем проверьте соответствие, еслиэто правильно: Плюсы: довольно быстро, Минусы: нужно либо сохранить список для каждого каталога, либо использовать бокс для сохранения списка или каталога в словаре.
c) Пропустить словарь, пройти по дереву изкорень и найти совпадение, разделив путь.Возможно, используйте PLINQ, чтобы ускорить процесс.Плюсы: нет лишней памяти со словарем, минусы: потенциально медленнее, чем поиск.
d) каким-то другим способом, о котором я не думал ...