Как использовать Switch со значениями из словаря?

В своем коде я хотел бы работать с текстовыми именами элементов, которые закодированы как один символ в пакетах.

В обычной ситуации 1012означало бы для меня кошка, собака, кошка, лягушка, но таких пар намного больше, так что трудно запомнить их все . Иногда их нужно изменить, поэтому я решил использовать для этой цели Dictionary. Но потом…

switch (symbol)
{
    case "0": { /* ... */ }
    case "1": { /* ... */ }
    case "2": { /* ... */ }
    case "n": { /* ... */ }
}

…становится…

switch (symbol)
{
    case kvpDic["cat"]: { /* ... */ }
    case kvpDic["dog"]: { /* ... */ }
    case kvpDic["frog"]: { /* ... */ }
    case kvpDic["something else"]: { /* ... */ }
}

и студия говорит, что мне нужно использовать константы для моего переключателя.

Как заставить это работать?

Upd: количество таких животныхи их пары значений известны только во время выполнения, поэтому код не должен использовать константы (я думаю).

9
задан user1306322 19 August 2014 в 12:42
поделиться