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

时间:2013-05-22 02:32:26

标签: c# python syntax

在C#中是否有与python的a in [1, 2, 3]等价的内容?

我已经尝试了new int[]{1, 2, 3}.Contains(a) - 这更加丑陋,但也是如此。

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

1 个答案:

答案 0 :(得分:7)

把它扔到那里并且完全未经测试。

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

我认为扩展方法将是您正在寻找的,然后只需调整实际的比较检查以满足您的需求。我选择了对象,因此可以使用任何东西,但如果您愿意,可以更具体。

就这样称呼它:

if (4.In(1,2,3,4))
{
    // Do something
}

你可以改变这个以获取IEnumerable,但是如果你已经有了一个,那么最好在你的集合上调用.Contains()或.Any()。