C#创建具有依赖枚举子列表的主枚举列表

时间:2016-03-09 17:27:44

标签: c# list enums

主要清单:

enum CarMake
{
   Ford, Toyota, Honda
}

二级清单:

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

}

是否有一些方法可以将2个枚举列表链接在一起?

因此,当使用CarMake时,程序会知道哪些CarModel链接了?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

你可能想看看这个。

Combine multiple enums into master enum list

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

因为如果你把理论列表carModel理论化为主列表,你就会得到你的答案

相关问题