Структура данных для категории

Я ищу структуру данных для добавления, удаления, получения и поиска по категориям.

Например:

книги

  • драма
  • научная фантастика
  • Другой

Спортивный

  • Кататься на велосипеде
  • Гольф
  • Командные виды спорта
    • Футбольный
    • Футбол

и т.п.

Я думаю об использовании дерева из библиотеки коллекции 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; }
}

Дерево было бы хорошим подходом, но я чувствую, что вы думаете, что будет универсальная структура данных, которую вы могли бы использовать, и это не совсем то, что я себе представляю. Я согласен с решением Марка, но рекомендую словарь вместо списка. Таким образом, вы можете быстро найти категорию и получить ее подкатегории.

Другие вопросы по тегам