Bueno alguna cosa tiene que repetir. Cualquiera de lo siguiente funcionará:
bool exists = array.Contains(variable_1);
bool exists = Array.IndexOf(array_1, variable_1) != -1;
bool exists = Array.Exists(array_1, x => x == variable_1);
bool exists = Array.FindIndex(array_1, x => x == variable_1) != -1;
bool exists = array_1.Any(x => x == variable_1);
Todas las versiones utilizando una expresión lambda se siente como una exageración para mí, pero son potencialmente útil si usted se encuentra en una situación en la que no se conoce el valor real estás buscando, solo algunas condiciones
Si sabe que la matriz está ordenada, puede utilizar:
bool exists = Array.BinarySearch(array_1, variable_1) >= 0;
Eso será O (log n) en lugar de O (n) (que todos los demás son), pero sí requiere la matriz que se ordenará primero.
Personalmente, normalmente voy con el primer formulario, suponiendo que esté usando .NET 3.5 o superior.
Si necesita comprobar si hay varios artículos y la matriz es grande, es posible que desee crear un HashSet<int>
:
HashSet<int> hashSet = new HashSet<int>(array_1);
bool exists = hashSet.Contains(variable_1);
En general, para comprobar la existencia en el interior de una estructura de múltiples valores requerirá una cierta cantidad de bucle. Si ha encontrado un cuello de botella en su aplicación (por medio de un perfil) con un bucle, puede agregar un índice para que sea más rápido. En .NET, la forma más sencilla de lograr esto es probablemente un Dictionary o HashSet. –