c# - 使用什么样的数据结构?

标签 c# oop data-structures

我正在做一个项目,我需要跟踪:

  • 5-6 个字符串名称的根项
  • 每个根项都需要有多个不同标识符类型(int、string、float 等)的子项。一个根的所有 child 都是同一类型,但每个根都有不同的子类型
  • 用户需要能够从每个根中添加/删除 child
  • 我稍后需要单独访问每个 child 并在需要时执行字符串操作和解析

我考虑过使用字典,其中键是字符串,值是对象列表。或者为每个根项设置一个唯一的类,并且每个类都将包含一个子项列表。

大家有什么好的建议吗?我对 OOP 还是很陌生,请多多包涵 :)

谢谢!

最佳答案

public interface IRoot {}

public class RootItem<T> : IRoot
{
    public string Name { get; set; }
    public List<T> Children {get; set; }
}

然后保留一个Dictionary<string, IRoot>把他们都抱起来。

Dictionary<string, IRoot> hair = new Dictionary<string, IRoot>();
hair.Add(
  new RootItem<int>()
      {
        Name = "None",
        Children = new List<int>() {1, 2, 3, 4}
      }
);

hair.Add(
  new RootItem<decimal>()
      {
        Name = "None",
        Children = new List<decimal>() {1m, 2m, 3m, 4m}
      }
);

关于c# - 使用什么样的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856497/

相关文章:

c# - Entity Framework 4 : How to enforce WHERE clause order in generated query

c# - 使用 Secret URL 将 Azure Key Vault 集成到 .NET Web API 应用程序中

c# - 如何判断.NET HttpClient 返回的内容是否压缩?

形式语言和自动机教学工具的面向对象设计

c - 为什么红黑树中的自引用哨兵比检查 NULL 更简单?

c++ - 递归公式

c# - 如何在 Xamarin 表单中的内容页面中添加选项卡式页面

c# - 为什么一个接口(interface)会实现另一个接口(interface)?

javascript - 私有(private)方法使用或不使用函数的困惑

data-structures - 哈希表 : why size should be prime?