主要清单:
enum CarMake
{
Ford, Toyota, Honda
}
二级清单:
enum CarModel
{
Explorer, // Ford
Corolla, // Toyota
Camry, // Toyota
Civic, // Honda
Pilot // Honda
}
是否有一些方法可以将2个枚举列表链接在一起?
因此,当使用CarMake时,程序会知道哪些CarModel链接了?
答案 0 :(得分:1)
不,正如您想要实现的那样是不可能的,但可以使用Dictionaries
和CarModel
的字符串
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理论化为主列表,你就会得到你的答案