一次又一次地使用单个变量的if语句的简写

use*_*er1 -1 c# if-statement

我的问题非常简单.

有一个简短的手

if (a == "p" || a == "l" || a == "g" || a == "z")
{
            //do something 
}
Run Code Online (Sandbox Code Playgroud)

有替代品吗?意思,我可以做点什么

if (a == ("p" || "l" || "g" || "z"))//这不起作用

Tim*_* S. 5

if (new[] { "p", "l", "g", "z" }.Contains(a))
Run Code Online (Sandbox Code Playgroud)

如果性能可能是一个问题,例如你有一个大的字符串列表要检查,或经常检查它,你应该考虑将它们存储在一个HashSet<string>,例如

var mySet = new HashSet<string> { "p", "l", "g", "z" };
// later...
if (mySet.Contains(a))
Run Code Online (Sandbox Code Playgroud)