Опция 1
while (!string.Equals(menu, "Q", StringComparison.OrdinalIgnoreCase));
Как предполагает StringComparision, при этом игнорируется регистр, и q и Q обрабатываются как одинаковые.
static void Main(string[] args)
{
string str1 = "Q";
string str2 = "q";
if (str1.Equals(str2, StringComparison.OrdinalIgnoreCase)) { }
string menu = "";
do
{
Console.WriteLine("Select Meun:(1)Triangle (2)Rectangle " +
"(Q)Quit",string.Equals
(str1, str2,
StringComparison.CurrentCultureIgnoreCase));
menu = Console.ReadLine();
Console.WriteLine(menu + "is selected");
} while (!string.Equals(menu, "Q", StringComparison.OrdinalIgnoreCase));
}
Вариант 2
while (menu.ToUpper() != "Q")
Это преобразует все, что находится в меню переменных, в верхний регистр.Его легче читать и он выполняет свою работу, и я лично предпочитаю этот метод.
static void Main(string[] args)
{
string str1 = "Q";
string str2 = "q";
if (str1.Equals(str2, StringComparison.OrdinalIgnoreCase)) { }
string menu = "";
do
{
Console.WriteLine("Select Meun:(1)Triangle (2)Rectangle " +
"(Q)Quit",string.Equals
(str1, str2,
StringComparison.CurrentCultureIgnoreCase));
menu = Console.ReadLine();
Console.WriteLine(menu + "is selected");
} while (menu.ToUpper() != "Q");
}
Addtional Ниже приведен также пример, в котором используются операторы switch, которые удобны и удобны для чтения, если в будущем планируется много вариантов:
do
{
Console.WriteLine("Select Menu:(1)Triangle (2)Rectangle (Q)Quit");
menu = Console.ReadLine();
switch (menu.ToUpper())
{
case "1":
//DO SOME CODE
break;
case "2":
//DO SOME CODE
break;
case "Q":
return;
}
Console.WriteLine(menu + " is selected");
} while (true);
Или этот метод, который не использует StringComparison или ToUpper и будет использоваться, если вы хотите разделить команды верхнего и нижнего регистра или если вы не хотите делать какие-либо дополнительные преобразования / проверки.
do
{
Console.WriteLine("Select Menu:(1)Triangle (2)Rectangle (Q)Quit");
menu = Console.ReadLine();
switch (menu)
{
case "1":
//DO THIS
break;
case "2":
//DO THAT
break;
case "q":
case "Q":
return;
}
Console.WriteLine(menu + " is selected");
} while (true);