Структура данных для категории
Я ищу структуру данных для добавления, удаления, получения и поиска по категориям.
Например:
книги
- драма
- научная фантастика
- Другой
Спортивный
- Кататься на велосипеде
- Гольф
- Командные виды спорта
- Футбольный
- Футбол
и т.п.
Я думаю об использовании дерева из библиотеки коллекции C5, например, но похоже, что оно имеет только красно-черные деревья. Какие-либо предложения?
2 ответа
Вы можете просто создать класс Category, который предоставляет список других экземпляров Category.
public class Category
{
public Category()
{
this.ChildCategories = new List<Category>();
}
public string Name { get; set; }
public IList<Category> ChildCategories { get; private set; }
}
Дерево было бы хорошим подходом, но я чувствую, что вы думаете, что будет универсальная структура данных, которую вы могли бы использовать, и это не совсем то, что я себе представляю. Я согласен с решением Марка, но рекомендую словарь вместо списка. Таким образом, вы можете быстро найти категорию и получить ее подкатегории.