C# 有什么方法可以避免if语句中充满检查

C# 有什么方法可以避免if语句中充满检查,c#,C#,我的代码如下所示: if (Settings.cc == CC.F1 || Settings.cc == CC.F2) 对F3、F4和F5进行附加测试 是否有任何方法可以避免针对每个条目检查Settings.cc?您可以执行以下操作: if (new[] {CC.F1, CC.F2, CC.F3, CC.F4, CC.F5}.Contains(Settings.cc)) 你可以这样做: if (new[] {CC.F1, CC.F2, CC.F3, CC.F4, CC.F5}.Contai

我的代码如下所示:

 if (Settings.cc == CC.F1 || Settings.cc == CC.F2)
对F3、F4和F5进行附加测试


是否有任何方法可以避免针对每个条目检查Settings.cc?

您可以执行以下操作:

if (new[] {CC.F1, CC.F2, CC.F3, CC.F4, CC.F5}.Contains(Settings.cc))

你可以这样做:

if (new[] {CC.F1, CC.F2, CC.F3, CC.F4, CC.F5}.Contains(Settings.cc))
一份声明肯定会让事情看起来更清楚。像这样的

switch (Settings.cc)
{
    case CC.F1:
      // Conditional code
      break;
    case CC.F2:
      // Conditional code
      break;
    default:
      Console.WriteLine("Default case");
      break;
}
一份声明肯定会让事情看起来更清楚。像这样的

switch (Settings.cc)
{
    case CC.F1:
      // Conditional code
      break;
    case CC.F2:
      // Conditional code
      break;
    default:
      Console.WriteLine("Default case");
      break;
}

也许您需要的是创建一个要检查的值列表。像这样的?也许您需要的是创建一个要检查的值列表。像这样的?有可能把新的[]放在一个const数组中。是的,在最高的范围内新建一个有意义的数组,这样你就可以在需要的时候重新创建它。如果有大量的条目,也可以考虑使用一个哈希集。@肯尼-你能给出一个例子吗?公共只读cc[] MatCHIGNCC=NeX[]]C.F1,C.F2,C.F3,C.F4,C.F5};有可能把新的[]放在一个const数组中。是的,在最高的范围内新建一个有意义的数组,这样你就可以在需要的时候重新创建它。如果有大量的条目,也可以考虑使用一个哈希集。@肯尼-你能给出一个例子吗?公共只读cc[] MatCHIGNCC=NeX[]]C.F1,C.F2,C.F3,C.F4,C.F5};