比较if中的两个值

Esa*_*Esa 0 c# comparison if-statement

假设我有一个如果是这样的话:

if(condition1 != asd && menu != menu1 && menu != menu2)
Run Code Online (Sandbox Code Playgroud)

这可以缩短为:

if(condition1 != asd && menu != (menu1 && menu2))
Run Code Online (Sandbox Code Playgroud)

我尝试围绕第二个条件围绕它不应该的两个条件,并围绕整个事情,但它不通过编译器.

是否有可能以这种方式缩短第二个条件?或者有更好的方法吗?

PS.我不知道该怎么称呼它,所以随时编辑标题.

Gra*_*ICA 5

想象一下,如果你在比较数字:

if (myNumber != 5 && myNumber != 10)
Run Code Online (Sandbox Code Playgroud)

您可以先将要比较的数字添加到列表中,然后使用.Contains():

var forbiddenNumbers = new List<int> { 5, 10 };

if (!forbiddenNumbers.Contains(myNumber))
Run Code Online (Sandbox Code Playgroud)

我没有看到任何理由你不能对你的菜单做同样的事情,因为你只是比较对象引用.(我不确定这里的类型是什么,所以我只选择了"菜单".)

var menusToCheck = new List<Menu> { menu1, menu2 };

if (!allowedMenus.Contains(menu))
Run Code Online (Sandbox Code Playgroud)