C#做问题。
我想要的是在源代码中以大写,小写字母终止Q或q的能力。
我引用了MSDN,但它没有成功,所以我在这里有一个问题。
谢谢。
using System;
namespace Try
{
class Program
{
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 != "Q");
}
}
}
答案 0 :(得分:3)
选项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);