Структура данных для категории - PullRequest
0 голосов
/ 25 августа 2009

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

Например:

Книга

  • Drama
  • Фантастика
  • Другое

Спорт

  • Велоспорт
  • Golf
  • командные виды спорта
    • Футбол
    • Футбол

и т.д.

Я думаю, например, об использовании дерева из библиотеки C5 , но похоже, что оно имеет только красно-черные деревья. Есть предложения?

Ответы [ 2 ]

4 голосов
/ 25 августа 2009

Вы можете просто создать класс Category, который предоставляет список других экземпляров Category.

public class Category
{
    public Category()
    {
        this.ChildCategories = new List<Category>();
    }

    public string Name { get; set; }

    public IList<Category> ChildCategories { get; private set; }
}
3 голосов
/ 25 августа 2009

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

...