c#相当于[1,2,3]中的蟒蛇'a'

Run*_*olt 2 c# python syntax

a in [1, 2, 3]在C#中是否有与python类似的东西?

我试过了new int[]{1, 2, 3}.Contains(a)- 这很麻烦,但也是这样.

当然,我也可以这样做,(a==1 || a==2 || a==3)但是使用不同的变量和命名空间,这也会变得有点笨拙.

TyC*_*obb 7

把它扔到那里并完全没有经过测试.

public static bool In(this object obj, params object[] items)
{
    return items.Any(o => o.Equals(obj));
}
Run Code Online (Sandbox Code Playgroud)

我认为扩展方法将是您正在寻找的,然后只需调整实际的比较检查以满足您的需求.我带着物体去了,所以它适用于任何东西,但如果你愿意,你可以更具体.

就像这样称呼它:

if (4.In(1,2,3,4))
{
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

您可以将其更改为接受IEnumerable,但如果您已经有一个,则可能最好只在您的集合上调用.Contains()或.Any().