【问题标题】:C# Creating a primary enum list that has dependant enum sublistsC# 创建具有依赖枚举子列表的主枚举列表
【发布时间】:2016-03-09 17:27:44
【问题描述】:

主列表:

enum CarMake
{
   Ford, Toyota, Honda
}

次要名单:

enum CarModel
{
  Explorer, // Ford
  Corolla, // Toyota
  Camry, // Toyota
  Civic, // Honda
  Pilot //  Honda

}

有什么方法可以将 2 个枚举列表链接在一起吗?

这样在使用 CarMake 时程序会知道链接了哪些 CarModel?

【问题讨论】:

    标签: c# list enums


    【解决方案1】:

    不,您想要实现的目标是不可能的,但可以使用DictionariesCarModel 的字符串

    var dict = new Dictionary<CarMake,string[]>();
    
    dict.Add(CarMake.Ford, new string[] { "Explorer" });
    dict.Add(CarMake.Toyota, new string[] { "Corolla","Camry" });
    dict.Add(CarMake.Honda, new string[] { "Civic","Pilot" });
    

    那么如果你想从本田取回汽车,你可以这样称呼它:

    var hondaCars = dict[CarMake.Honda]
    

    如果您想从刚刚调用的模型中检索汽车制造商:

    var carMaker = dict.FirstOrDefault(key => key.Value.Contains("Civic")).Key
    

    【讨论】:

    • 您甚至可以将其设为Dictionary&lt;CarMake, List&lt;CarModel&gt;&gt;
    • @juharr 谢谢,我已经添加了从制造商那里检索汽车或从汽车中检索制造商的可能性。
    【解决方案2】:

    你可能想调查一下。

    Combine multiple enums into master enum list

    allCars.AddRange(Enum.GetValues(typeof(CarModel)).Cast<Enum>());
    allCars.AddRange(Enum.GetValues(typeof(CarMake)).Cast<Enum>()); 
    

    因为如果您将列表 carModel 列入理论上的主列表,您就会得到答案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      相关资源
      最近更新 更多