Как инициализировать массив состояний в Main () - PullRequest
0 голосов
/ 11 июня 2019

Проблема заключается в том, что я не уверен, как правильно отформатировать код, чтобы при вводе пользователем аббревиатуры состояния основной метод искал его в методе GetValidState, чтобы сообщить пользователю, действительно ли введенные данные верны или нет.Одним из ключевых моментов является то, что сокращение должно состоять из 2 букв.

static void Main(string[] args)
{
    string stateAbbreviation;
    bool fieldValidationSuccess = false;

    promt = GetValidState("State (2 letters):\t");
    stateAbbreviation = ReadLine();
}

public static string GetValidState(string prompt, string[] sortedStateArray)
{
    string[] states = new string[] { "AK", "WA", "OR", "CA", "AZ", "NM", "CO", "UT" };

    fieldValidationSuccess = false;

    while (!fieldValidationSuccess)
    {
        int sub = 0;
        while (sub < states.Length && !fieldValidationSuccess)
        {
            if (states[sub].ToUpper() == stateAbbreviation.ToUpper())
            {
                fieldValidationSuccess = true;
            }
            else
            {
                sub++;
            }
        }

        if (!fieldValidationSuccess)
        {
            WriteLine("\n***ERROR.  We do not ship to {0}.", stateAbbreviation);
        }
    }
}
  • Инициализировать массив состояний в Main ().

• Создать цикл проверкичтобы убедиться, что пользователь вводит правильное сокращение состояния.

• Используйте цикл для поиска в массиве действительного состояния.Не используйте Array.BinarySearch

• Вызовите GetValidString, чтобы получить строку от пользователя.Используйте 2 для параметров min и max.

1 Ответ

0 голосов
/ 11 июня 2019

Я не уверен, что это то, что вы хотите. Вы хотите, чтобы код проверял, находится ли STATE в вашем массиве?

        public static void GetValidState(string prompt, string state)
        {
            string[] states = new string[] { "AK", "WA", "OR", "CA", "AZ", "NM", "CO", "UT" };

            if (!states.Contains(state))
                WriteLine("\n***ERROR.  We do not ship to {0}.", state);

        }
...