2011-06-01 7 views

Respuesta

12
var badList = new[] { v1, v4, v7, v11 }; 
var result = !badList.Contains(trsaz); 
+0

¿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

+0

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? –

+0

sí, compare por nombre – divfe

2
var excludeList = new[] { "v1", "v4", "v7", "v11" }; 
if(!excludeList.Contains(trsaz)) 
{ 
    ... 
} 
0

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.

0
var result = (new[] {v1, v4, v7}).Every(o => o != trsaz); 
Cuestiones relacionadas