我怎么说不是,不是
本文关键字:不是 怎么说 | 更新日期: 2023-09-27 17:58:02
我不想说:
(trsaz != v1) && (trsaz != v2) && ...
我想要像这样的东西
trsaz != (v1, v4, v7, v11)
这可能吗?或者除了!=
之外还有其他东西吗。
var badList = new[] { v1, v4, v7, v11 };
var result = !badList.Contains(trsaz);
var excludeList = new[] { "v1", "v4", "v7", "v11" };
if(!excludeList.Contains(trsaz))
{
...
}
实际上,我更喜欢为此创建一个小的扩展方法:
public static bool IsIn<T>(this T obj, params T[] set) {
return set.Any(el => element.Equals(obj));
}
它封装了所有的黑色魔法,使您的代码非常简洁,这显然是您的目标:
if (!trsaz.IsIn(v1, v4, v7, v11)) {
// ...
}
如果机制不重要,隐藏它总是很好的,尤其是在这种情况下,根本不需要使用任何机制,并且会让维护代码的人感到困惑。
var result = (new[] {v1, v4, v7}).Every(o => o != trsaz);