stringcomparison ejemplo diferente c# .net arrays string comparison

ejemplo - string.equals c#



La forma más rápida de comparar una cadena con una matriz de cadenas en C#2.0 (4)

¿Qué tipo de comparación quieres? ¿Quieres saber si la cadena dada está en la matriz?

bool targetStringInArray = array.Contains(targetString);

¿Quieres una matriz de valores de comparación (positivo, negativo, cero)?

var comparisons = array.Select(x => targetString.CompareTo(x));

Si está verificando la contención (es decir, la primera opción) y va a hacer esto con varias cadenas, probablemente sería mejor crear una HashSet<string> desde la matriz:

var stringSet = new HashSet<string>(array); if (stringSet.Contains(firstString)) ... if (stringSet.Contains(secondString)) ... if (stringSet.Contains(thirdString)) ... if (stringSet.Contains(fourthString)) ...

¿Cuál es la forma más rápida de comparar una cadena con una matriz de cadenas en C # 2.0?


¿Quieres ver si la cadena está en la matriz? No puedo recordar si las matrices son compatibles con el método .Contains (), de lo contrario, cree una Lista <cadena>, agregue su matriz a la lista mediante AddRange (), luego llame a list.Contains ({string to compare}). Devolverá un valor booleano que indica si la cadena está o no en la matriz.


// obtener los datos en la lista de la fuente Lista de verificación = Directory.GetFiles (SourcePath, " . ", SearchOption.AllDirectories) .Where (x => x.ToLower (). EndsWith ("apk")). ToList ();

//get date from a text file List<string> ls = ReadFile(); foreach(string file in checklist) { //get file name string filename = Path.GetFileName(file); string TargetLocation = Path.Combine(TargetPath, filename); //now compare single string to a list //it give in true and false if(ls.Contains(filename)) { //do your task //File.Copy(file, TargetLocation); } }


Si está haciendo esto muchas veces con una sola matriz, debe ordenar la matriz y buscarla en binario:

Array.Sort(array); int index = Array.BinarySearch(array, input); // if (index < 0) // does not exists, "items > ~index" are larger and "< ~index" are smaller // otherwise, "items > index" are larger and "< index" are smaller.

De lo contrario, simplemente compruebe toda la matriz ingenuamente:

bool exists = Array.IndexOf(array, input) >= 0;