Мне нужно реализовать большую коллекцию объектов Widget, каждая из которых содержит уникальную строку пути к файлу («FilePath»). Мне нужно, чтобы быть в состоянии сделать следующее:C# Data Structures Question (Какая коллекция использовать?)
- Получить виджет объект быстро дал путь к файлу
- изменить путь к файлу в виджете без создания нового объекта (несколько других объектов может содержать ссылки на один Виджет, и отслеживание их будет влиять на производительность)
- Учитывая ссылку Widget, определить его путь к файлу
Я сначала думал использовать общий SortedList, используя путь к файлу в качестве ключа, но дублируя путь для многих тысячи объектов могут быстро съесть u p память. Я решил удалить путь из объекта и сохранить его только в списке ключей, но это затруднит выполнение требования 3.
То, к чему я склоняюсь, теперь сворачивает мой собственный класс, полученный из списка <>, который добавляет объекты Widget в отсортированном порядке и извлекает их с помощью двоичного поиска. Требование 2 может быть выполнено просто путем удаления объекта из списка, изменения его пути к файлу и добавления его в список.
Но я относительно новичок в C#, и я хотел проверить с великими умами здесь и посмотреть, не хватает ли я другого очевидного решения.
Спасибо!
Этот ответ и другие выше ответили на части вопроса, но это ответ, который обратился к основной проблеме и был наиболее кратким. Благодаря! –