如何将多个值与单个变量进行比较?

时间:2020-05-19 08:49:07

标签: c# if-statement switch-statement

是否存在用于比较多个值的快捷方式,例如以下表达式?

if (choice == "a" || choice == "b" || choice == "c") {do something;}

我考虑过switch语句,但据我所知,它们仅适用于单个值。

那变量声明或常量呢?

int initialValue = 1, finalValue = 1;

2 个答案:

答案 0 :(得分:1)

您可以尝试Any()

public static string[] array = new string[] {"a", "b", "c"};
if(array.Any(x => x == choice))
{
   //Your business logic
}

或者您可以将Any().Contains一起尝试,

if(array.Any(choice.Contains))
{
   //Your business logic
}

您可以使用HashSet<T>存储不同的元素,并使用.Contains()来确定choice是否可用在哈希中

public static HashSet<string> array = new HashSet<string>(){"a", "b", "c"};
if(array.Contains(choice))
{
   Console.WriteLine("Implement your business logic");
}

.Net Fiddle

答案 1 :(得分:0)

您可以堆叠case语句,以将多个值映射到同一操作:

switch(choice)
{
  case "a":
  case "b":
  case "c":
    // Do something
    break;

  default:
    // Do something else
    break;
}