C# 类别的数据结构

C# 类别的数据结构,c#,.net,data-structures,tree,c5,C#,.net,Data Structures,Tree,C5,我正在寻找一个数据结构,以添加,删除,获取和查找类别 例如: 书 戏剧 科幻小说 其他 体育 骑自行车 高尔夫球 团体运动 足球 足球 等等 例如,我考虑使用中的树,但它看起来只有红黑树。 有什么建议吗?您可以创建一个Category类,公开其他Category实例的列表 public class Category { public Category() { this.ChildCategories = new List<Category>

我正在寻找一个数据结构,以添加,删除,获取和查找类别

例如:

  • 戏剧
  • 科幻小说
  • 其他
体育
  • 骑自行车
  • 高尔夫球
  • 团体运动
    • 足球
    • 足球
等等

例如,我考虑使用中的树,但它看起来只有红黑树。
有什么建议吗?

您可以创建一个Category类,公开其他Category实例的列表

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

    public string Name { get; set; }

    public IList<Category> ChildCategories { get; private set; }
}
公共类类别
{
公共类别()
{
this.ChildCategories=新列表();
}
公共字符串名称{get;set;}
公共IList子类别{get;private set;}
}

您只需创建一个类别类来公开其他类别实例的列表

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

    public string Name { get; set; }

    public IList<Category> ChildCategories { get; private set; }
}
公共类类别
{
公共类别()
{
this.ChildCategories=新列表();
}
公共字符串名称{get;set;}
公共IList子类别{get;private set;}
}

树是一种很好的方法,但我感觉您认为将有一种适合您使用的一刀切的数据结构,而这并不是我所设想的。我同意马克的解决方案,但建议用字典而不是列表。这样,您可以查找类别并快速获取其子类别

树是一种很好的方法,但我感觉您认为将有一个适合所有人的数据结构,您可以使用,而这并不是我所设想的。我同意马克的解决方案,但建议用字典而不是列表。这样,您可以查找类别并快速获取其子类别

这对我来说就像一棵树。。。下一个项目怎么放?例如,将足球节点添加为团队运动节点的子节点,该节点是运动子节点的子节点。。。[为什么要实现这一点…当你可以使用一棵树时…]+1我喜欢你的答案,但使用字典而不是列表。@rabashani:创建一个新的类别实例,并将其命名为“足球”,然后将其添加到另一个类别实例的ChildCategories中,并命名为“团队运动”,等等。这对我来说开始感觉像一棵树了。。。下一个项目怎么放?例如,将足球节点添加为团队运动节点的子节点,该节点是运动子节点的子节点。。。[为什么要实现这一点…当你可以使用树时…]+1我喜欢你的答案,但使用字典而不是列表。@rabashani:创建一个新的类别实例,并将其命名为“足球”,然后将其添加到另一个类别实例的ChildCategories中,并命名为“团队运动”,等等。