使用c#在switch case中检查变量的字符串值

问题描述 投票:1回答:3

我正在检查变量用户名是否包含“ali”,这是交换机案例中的字符串值,但我的老师早些时候告诉我,你只能检查数据类型char和int但是它与字符串工作正常,所以我很困惑,检查字符串数据 - 键入开关是好还是不好?

string userName = "Ali";//the variable i want to check

switch(userName)
{
  case "Ali"://value i want to check
  Console.WriteLine("found");
  break;

  default:
  Console.WriteLine("not found");
  break;

}
c# switch-statement
3个回答
0
投票

你肯定可以在switch表达式中使用字符串。

在C#6.0中,您可以使用整数值,枚举,布尔值,字符和字符串。从C#7.0开始,您可以使用任何非null表达式。有关其他详细信息,请参阅the official documentation


0
投票

是的,你可以做到。但不是你试图做的方式。您在switch中的字符串是大写的,但变量不是。你的变量名为userNAme,但在switch中你试图使用userName。试试这段代码:

string userName = "Ali";

switch(userName.ToLower()) 
{
    case "ali":
        Console.WriteLine("found");
        break;
    default:
        Console.WriteLine("not found");
        break;
}

0
投票

您可以使用流控制开关作为字符串

but you find two error in your coding, because c# case sensitive

string userNAme and and you write switch(userName)

break: change to break;
© www.soinside.com 2019 - 2024. All rights reserved.