В общем, есть switch
длиной с Эверест, как бы вы избавились от него, кроме как записывать это в Dictionary
?
switch (currencyLeft)
{
case "BTC":
return 0.001m;
case "BCH":
case "ETH":
case "FCT":
case "NEO":
case "UBTC":
case "XEM":
case "ZEC":
return 0.01m;
case "MCO":
case "QTUM":
case "REP":
case "STX":
case "VET":
return 0.1m;
case "ETC":
case "DASH":
case "LTC":
case "XLM":
case "XRP":
case "XMR":
return 0.5m;
case "GAT":
return 8m;
case "BMC":
case "DENT":
case "DRG":
case "ETN":
case "FDX":
case "FLIXX":
case "FSN":
case "GZE":
case "IND":
case "IXT":
case "MTN":
case "OAX":
case "ONG":
case "QASH":
case "RKT":
case "SAL":
case "SER":
case "SNIP":
case "SPHTX":
case "STAC":
case "STORJ":
case "STU":
case "TPT":
case "TRX":
case "VZT":
return 1m;
default:
throw new Exception("Unsupported symbol");
}
UPD: сам switch
и так находится в приватном методе, который возвращает decimal
и принимает string
. Задача в том, чтобы этот код (логику, если так можно "это" назвать) как-то упростить (уменьшить), если это возможно, но не словарем.
Хардкод значений и курсов в коде - это нехорошо.
Положите все это в CSV / JSON / базу данных. Т.е. в любое хранилище, кроме кода. Поднимайте из хранилища по первому обращению и десериализуйте в Dictionary<string, decimal>
.
В switch – данные. Данные, по возможности, отделяют от логики программы. Раз уж данных много, можно хранить их в файлах, в настройках программы или в базе. Вот подходящий ответКак хранить данные в программе?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, подскажите как бы Вы написали следующий функционал, хочу узнать как можно реализовать это более эффективно, спасибо
Доброго времени сутокВ разрабатываемом приложении работа с данными БД происходит через запросы, формируемые следующим образом (например...
Подскажите что это значит (скрин), и какие способы решения есть, и соответственно из-за чего это может происходить ? Используется реклама Kidoz,...
При получении сообщения от сокета оно обрезаетсяПолучаю примерно 680,000 символов, хотя должно прийти сообщение примерно в 3 раза больше