Я пытаюсь использовать словарь с типом enum в качестве ключа и строкой в качестве его значения.
Вот мое перечисление:
public enum MilitaryBranch{
AirForce,
Army,
Navy,
Marines,
Coastguard
}
А вот мой словарь
Dictionary<MilitaryBranch, string> BranchToRankMapping = new Dictionary<MilitaryBranch, string>()
{
{ MilitaryBranch.AirForce|MilitaryBranch.Army|MilitaryBranch.Marines, "General" },
{ MilitaryBranch.Navy, "Admiral" },
{ MilitaryBranch.Coastguard, "Commandant" },
}
В словаре я пытался использовать |оператор OR AirForce, Army и Marines вместе, так что если бы любое из этих перечислений было предоставлено в качестве Ключа к словарю, оно вернуло бы «General».
Вот мое использование словаря и перечисления:
public void Test(){
string af = BranchToRankMapping[MilitaryBranch.AirForce];
string army = BranchToRankMapping[MilitaryBranch.Army];
string marines = BranchToRankMapping[MilitaryBranch.Marines];
string navy = BranchToRankMapping[MilitaryBranch.Navy];
string cg= BranchToRankMapping[MilitaryBranch.Coastguard];
}
При попытке получить значение словаря для MilitaryBranch.AirForce, .Army и .Marines я получаю исключение Ключ не найден.
Это то, что я пытаюсь сделать невозможный?Нужно ли вводить элемент словаря для каждого значения перечисления?Спасибо