Existem algumas maneiras diferentes de comparar strings em C # e .NET. O método String.Compare é usado para comparar duas strings. Você também pode usar o método String.Equals. Vamos ver como comparar string usando métodos diferentes e quando utilizá-los.
- String.Equals
A forma mais simples de dividir duas cadeias para o mesmo valor é usando o método String.Equals. Se ambas as strings forem iguais, o método retornará true; mais retorna falso. O exemplo de código abaixo é um exemplo de comparação de duas cadeias usando o método String.Equals.
string author1 = "Jhonathan Soares"; string author2 = "João Sauro"; string author3 = "Jhonathan Soares"; // Compare strings using String.Equals if (String.Equals(author1, author2)) Console.WriteLine($"{author1} and {author2} have same value."); else Console.WriteLine($"{author1} and {author2} are different."); if (String.Equals(author1, author3)) Console.WriteLine($"{author1} and {author3} have same value."); else Console.WriteLine($"{author1} and {author3} are different.");
-
Usando String.CompareO método String.Compare compara duas strings e retorna um valor inteiro. O valor de retorno do método Compare pode ser menor que zero, maior que zero ou igual a zero.
Valor de retorno Significado Menos de 0 A primeira cadeia precede a segunda string na ordem de classificação. 0 Ambas as cadeias são iguais em valor. Mais de 0 A primeira string procede a segunda string na ordem de classificação. O exemplo de código é um exemplo de comparação de duas cadeias usando o método String.Compare
string author1 = "João Hugo Silva"; string author2 = "Pedro Lopes Alves"; // Use String.Compare method if (String.Compare(author1, author2) == 0) Console.WriteLine($"Both strings have same value."); else if (String.Compare(author1, author2) < 0) Console.WriteLine($"{author1} precedes {author2}."); else if (String.Compare(author1, author2) > 0) Console.WriteLine($"{author1} follows {author2}.");
-
Usando o método CompareToO método CompareTo é um método de instância da classe string. Ele compara um valor (uma string ou um objeto) com uma instância de string. Os valores de retorno deste método são os mesmos do método Compare.O exemplo de código é um exemplo de comparação de duas cadeias usando o método CompareTo.
string author1 = "João Hugo Silva"; string author2 = "Pedro Lopes Alves"; // Use CompareTo method if (author1.CompareTo(author2) == 0) Console.WriteLine($"Both strings have same value."); else if (author1.CompareTo(author2) < 0) Console.WriteLine($"{author1} precedes {author2}."); else if (author1.CompareTo(author2) > 0) Console.WriteLine($"{author1} follows {author2}.");
-
Usando o StringComparerVocê também pode usar a classe StringComparer para comparar duas strings. O código abaixo é um exemplo de comparação de duas string usando o método StringComparer
string author1 = "João Hugo Silva"; string author2 = "Pedro Lopes Alves"; //Use StringComparer StringComparer comparer = StringComparer.OrdinalIgnoreCase; if (comparer.Compare(author1, author2) == 0) Console.WriteLine($"Both strings have same value."); else if (comparer.Compare(author1, author2) < 0) Console.WriteLine($"{author1} precedes {author2}."); else if (comparer.Compare(author1, author2) > 0) Console.WriteLine($"{author1} follows {author2}.");
-
Exemplo de código completoO código abaixo é o programa completo escrito em .NET Core e C # 7.
using System; namespace StringComapreSample { class Program { static void Main(string[] args) { string author1 = "Pedro Hugo"; string author2 = "Jhonathan Soares"; string author3 = "Pedro Hugo"; // Compare strings using String.Equals if (String.Equals(author1, author2)) Console.WriteLine($"{author1} and {author2} have same value."); else Console.WriteLine($"{author1} and {author2} are different."); if (String.Equals(author1, author3)) Console.WriteLine($"{author1} and {author3} have same value."); else Console.WriteLine($"{author1} and {author3} are different."); // Use String.Compare method if (String.Compare(author1, author2) == 0) Console.WriteLine($"Both strings have same value."); else if (String.Compare(author1, author2) < 0) Console.WriteLine($"{author1} precedes {author2}."); else if (String.Compare(author1, author2) > 0) Console.WriteLine($"{author1} follows {author2}."); // Use CompareTo method if (author1.CompareTo(author2) == 0) Console.WriteLine($"Both strings have same value."); else if (author1.CompareTo(author2) < 0) Console.WriteLine($"{author1} precedes {author2}."); else if (author1.CompareTo(author2) > 0) Console.WriteLine($"{author1} follows {author2}."); //Use StringComparer StringComparer comparer = StringComparer.OrdinalIgnoreCase; if (comparer.Compare(author1, author2) == 0) Console.WriteLine($"Both strings have same value."); else if (comparer.Compare(author1, author2) < 0) Console.WriteLine($"{author1} precedes {author2}."); else if (comparer.Compare(author1, author2) > 0) Console.WriteLine($"{author1} follows {author2}."); Console.ReadKey(); } } }
Um grande abraço a todos!
Fontes: https://docs.microsoft.com/pt-br/dotnet/csharp/how-to/compare-strings / https://www.c-sharpcorner.com/mahesh/compare-strings-in-C-Sharp/