Налоговый калькулятор штата Visual Basic

#vb.net

#vb.net

Вопрос:

Я работаю над проектом Visual Basic, создающим налоговый калькулятор. Прямо сейчас у меня есть два массива, один для штатов, а другой для налоговых ставок. Штаты, начинающиеся с A-L, имеют одинаковую налоговую ставку в размере 2%, M-P 3,5% и R-W 4%. Прямо сейчас вот как выглядят два массива:

  Dim states() As String = {"Alabama", "Alaska", "Arizona", "Arkansas", 
   "California", "Colorado", "Connecticut", "Delaware", "Florida", 
    "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", 
    "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", 
    "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", 
    "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New 
    York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", 
    "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", 
    "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", 
    "West Virginia", "Wisconsin", "Wyoming"} 

    Dim statetax() As Double = {0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 
    0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.035, 
    0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 
    0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 0.035, 
    0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04}
  

Затем, чтобы рассчитать государственный налог, у меня есть куча, если selectstate начинается с «a», «b», «c» или «d», тогда totalstatetax = statetax (0) * доход

Мне было интересно, существует ли упрощенная версия или способ создания индекса, который позволил бы совпадать штатам и налогу штата. любая помощь приветствуется. Спасибо!

Комментарии:

1. Использовать словарь?

2. Также — это действительно так или это игрушечная проблема? Казалось бы, это потрясающее совпадение, что сортировка штатов по алфавиту и ставкам налогообложения так согласуется.

3. нет, это школьное задание

4. Вы сильно усложнили эту проблему. На вашем месте я бы выбросил все, что у меня было на данный момент, внимательно перечитал проблему, описанную в третьем предложении вашего поста (только это предложение), и подумал о других способах, которыми вы могли бы решить проблему присвоения одной из трех налоговых ставок группам штатов (возможно, подумав о сходствах).

5. Подсказка: Используйте string.StartsWith метод.

Ответ №1:

Словарь может быть подходящим инструментом для этой работы

 var stateTaxes = new Dictionary<string, decimal>
{
    { "Alabama", 0.02m },
    { "Maine", 0.035m },
    // other states
}

var alabamaTaxAmount = income * stateTaxes["Alabama"];