no quiero decir:¿Cómo puedo decir que no es, no es
(trsaz != v1) && (trsaz != v2) && ...
quiero algo como:
trsaz != (v1, v4, v7, v11)
Es esto posible o hay también algo más que !=
.
no quiero decir:¿Cómo puedo decir que no es, no es
(trsaz != v1) && (trsaz != v2) && ...
quiero algo como:
trsaz != (v1, v4, v7, v11)
Es esto posible o hay también algo más que !=
.
var badList = new[] { v1, v4, v7, v11 };
var result = !badList.Contains(trsaz);
var excludeList = new[] { "v1", "v4", "v7", "v11" };
if(!excludeList.Contains(trsaz))
{
...
}
En realidad, prefiero la creación de un pequeño método de extensión para que:
public static bool IsIn<T>(this T obj, params T[] set) {
return set.Any(el => element.Equals(obj));
}
Se encapsula toda la magia negro y hace que su código muy concisa, que es su objetivo, obviamente:
if (!trsaz.IsIn(v1, v4, v7, v11)) {
// ...
}
Siempre es bueno ocultar el mecanismo si no es importante, especialmente en este caso donde el uso de un Ningún mecanismo es necesario en absoluto y confundirá a algunas personas que mantendrán su código.
var result = (new[] {v1, v4, v7}).Every(o => o != trsaz);
¿Cómo voy a hacer esto para los controles que pasan por el constructor: con.control.v1, con.control.v4, con.control.v7, con.control.v11? – divfe
debería ser capaz de crear una matriz como esta 'var badList = new [] {con.control.v1, con.control.v4, con.control.v7, con.control.v11};' Si no, ¿puede publicar su firma de constructor? –
sí, compare por nombre – divfe