在检查多个类似条件时,有没有办法让if语句更短更好看?(C#)

use*_*322 1 c# if-statement

(不确定标题是否足够好解释此事)

我有这段代码:

string input = "5";
   if (input == ""  ||
       input == "1" ||
       input == "2" ||
       input == "3" ||
       input == "4" ||
       input == "_" ||
       input == "6" ||
       input == "7" ||
       input == "8")
     {/* ... */}
   else
     {/* ... */}
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它看起来更好?有没有办法去除重复的inputs?

upd:switch可能会让它变得更糟,因为在我的情况下,我将检查许多条件,其中大多数将运行非常有限的方法.

Tho*_*que 7

是的,你可以写一个像这样的扩展方法:

    public static bool In<T>(this T value, params T[] list)
    {
        return list.Contains(value);
    }
Run Code Online (Sandbox Code Playgroud)

并使用如下:

if (input.In("", "1", "2", ...))
...
Run Code Online (Sandbox Code Playgroud)