Проблема заключается в том, что я не уверен, как правильно отформатировать код, чтобы при вводе пользователем аббревиатуры состояния основной метод искал его в методе 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.