Comparações de string com C# 7

0
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.
  1. 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.");  
    

     

  2. Usando String.Compare

    O 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}.");  
    


  3. Usando o método CompareTo

    O 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}.");  
    
    

  4. Usando o StringComparer

    Você 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}.");  
    
    
    

  5. Exemplo de código completo

      O 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/

 

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com