我应该使用哪种.NET数据结构将字符串与字符串数组相关联?

Fir*_*com 0 c# asp.net asp.net-mvc data-structures

我是ASP.NET MVC和C#的新手,我正在编写一个控制器来传递构建列表所需的信息

Organization 1
    Organization 1 - Category 1
    Organization 1 - Category 2
Organization 2
    Organization 2 - Category 1
    Organization 2 - Category 2
    Organization 2 - Category 3
Organization 3
    Organization 3 - Category 1
Run Code Online (Sandbox Code Playgroud)

所有这些行都是字符串.换句话说,我需要将每个组织与该组织的类别列表相关联.截至目前,这些组织和类别存在于数据库表中,但是当我提取它们时,我需要将它们放在"正确的"C#数据结构中以传递给我的View.

显然我可以做点什么

public struct orgcats
{
    string org; 
    List<string> cats;
}
List<orgcats> oclist; 
Run Code Online (Sandbox Code Playgroud)

并附加oclist并传递,但我相信你们中的一个人知道更好的方式并且可以教育我.我希望我的代码具有完美的紧凑性,效率,聪明,可读性和正确性.

Eri*_*ips 7

你应该构建你的对象来代表他们不需要的东西:

public class Organization
{
  public string Name { get; set;} 
  public IEnumerable<Category> Categories { get; set; }
}

public class Category
{
  public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

类别可以是一个,IEnumerable<string>但只要你需要做一件事(比如添加int Sequence { get; set; }到类别),你的所有引用都Categories变得无效,你将有很多重新编码要做.

我还建议,紧凑性,效率不应该在列表的顶部.我建议将可维护性和可读性作为第一名.