Nota: La pregunta es sobre matrices de cadenas. Las rutinas mencionadas no se deben mezclar con el método .Contains de cadenas individuales.
Me gustaría agregar una respuesta extendida que se refiera a diferentes versiones de C # y por dos razones:
La respuesta aceptada requiere Linq, que es C # perfectamente idiomático, mientras que no viene sin costos y no está disponible en C # 2.0 o inferior. Cuando se trata de una matriz, el rendimiento puede ser importante, por lo que hay situaciones en las que desea permanecer con los métodos de matriz.
Ninguna respuesta atiende directamente a la pregunta en la que también se pidió que pusiera esto en una función (como algunas respuestas también mezclan cadenas con matrices de cadenas, esto no es completamente insignificante).
Array.Exists () es un método C # / .NET 2.0 y no necesita Linq. La búsqueda en matrices es O (n). Para un acceso aún más rápido, use HashSet o colecciones similares.
Desde .NET 3.5 también existe un método genérico Array<T>.Exists():
public void PrinterSetup(string[] printer)
{
if (Array.Exists(printer, x => x == "jupiter"))
{
Process.Start("BLAH BLAH CODE TO ADD PRINTER VIA WINDOWS EXEC");
}
}
Puede escribir un método de extensión propio (C # 3.0 y superior) para agregar el azúcar sintáctico para obtener el mismo / similar ".Contains" que para las cadenas para todas las matrices sin incluir Linq:
// Using the generic extension method below as requested.
public void PrinterSetup(string[] printer)
{
if (printer.ArrayContains("jupiter"))
{
Process.Start("BLAH BLAH CODE TO ADD PRINTER VIA WINDOWS EXEC");
}
}
public static bool ArrayContains<T>(this T[] thisArray, T searchElement)
{
// If you want this to find "null" values, you could change the code here
return Array.Exists<T>(thisArray, x => x.Equals(searchElement));
}
En este caso ArrayContains()se utiliza este método y no el método Contiene de Linq.
Los métodos .Contains mencionados en otra parte se refieren a List<T>.Contains(desde C # 2.0) o ArrayList.Contains(desde C # 1.1), pero no directamente a las matrices.