我更喜欢这里定义的方法:将变量与多个值进行比较
这是乍得帖子的转换:
public static bool In(this T obj, params T[] arr)
{
return arr.Contains(obj);
}
Run Code Online (Sandbox Code Playgroud)
用法就是
if (intVar.In(12, 42, 46, 74) )
{
//TODO: Something
}
Run Code Online (Sandbox Code Playgroud)
要么
if (42.In(x, y, z))
// do something
Run Code Online (Sandbox Code Playgroud)
没有这样的等价物。最接近的是集合的Contains()扩展方法。
例子:
var vals = new int[] {2, 96};
if(vals.Contains(iIntVar))
{
// some code
}
Run Code Online (Sandbox Code Playgroud)
在.Net中,.Contains是最接近的,但语法与您编写的相反。
您可以编写一个扩展方法来创建 .In 方法
public static bool In<T>(this T obj, IEnumerable<T> arr)
{
return arr.Contains(obj);
}
Run Code Online (Sandbox Code Playgroud)
用法是
if (42.In(new[] { 12, 42, 46, 74 }) )
{
//TODO: Something
}
Run Code Online (Sandbox Code Playgroud)