none
Comparar dois Vetores

    السؤال

  • Bom dia Pessoal,

    gostaria de saber se tem como, se tiver me mostrar como posso fazer, para comparar dois vetores sem precisar criar um laço e comparar item a item, ou seja, se tem alguma função que retorna Verdadeiro caso todos os elementos do Vetor A seja iguais ao Vetor B.

    Des de já, obrigado pela ajuda.
    17/ذو الحجة/1430 11:32 ص

الإجابات

  • Veja um exemplo: (fiz em C#)

                //declaro os 2 vetores
                int[] teste1 = new int[] { 1, 2 };
                int[] teste2 = new int[] { 1, 2 };

                //esse array será usado para saber o resultado final
                int[] resultFinal;

                //essa variável só serve para dizer se um é igual ao outro ou não
                bool ok = false;

                //comparo os 2 vetores
                resultFinal = teste1.Intersect(teste2).ToArray();
                if (resultFinal.Count() == teste1.Count())
                    ok = true;

               if(ok)
               {//iguais
                    //entra aki se os 2 vetores forem iguais
               }
               else
               {//diferentes
                   //entra aki se os 2 vetores forem diferentes
               }

    • تم وضع علامة كإجابة بواسطة Marcus_v_f 17/ذو الحجة/1430 12:31 م
    17/ذو الحجة/1430 12:12 م

جميع الردود

  • Acho melhor você tentar explicar mais o seu real objetivo para podermor ajudar.(o seu contexto)

    Vai ser bem dificíl fazer isso e ao mesmo tempo que não vai ser uma verificação exata.

    Se o seu vetor estiver todo embaralhado talvez você nunca consiga fazer esse "merge" e obter um resultado verdadeiro.

    Possível fazer essa verificação é sim, mais com certeza você terá que fazer um Loop para verificar.

    Se você puder dar outras informações, tais como, com quais vetores você pretende trabalhar ? Um List<> genérico ? um ArrayList ?? um simples array? enfim...
    17/ذو الحجة/1430 11:43 ص
  • Vou mostrar um exemplo bobo, do que eu gostaria de fazer.

            Dim teste1(0 to 1) As Integer
            Dim teste2(0 to 1) As Integer

            teste1(0) = 1
            teste1(1) = 2

            teste2(0) = 1
            teste2(1) = 2

            If teste1.Equals(teste2) Then 'Isso não funciona, apenas um exemplo!
                MsgBox("igual")
            Else
                MsgBox("diferente")
            End If

    São dois vetores simples, que podem ser iguais ou não. Meu objetivo é de saber quando eles serão iguais.

    Espero ter sido mais claro.

    Obrigado!
    17/ذو الحجة/1430 12:01 م
  • Veja um exemplo: (fiz em C#)

                //declaro os 2 vetores
                int[] teste1 = new int[] { 1, 2 };
                int[] teste2 = new int[] { 1, 2 };

                //esse array será usado para saber o resultado final
                int[] resultFinal;

                //essa variável só serve para dizer se um é igual ao outro ou não
                bool ok = false;

                //comparo os 2 vetores
                resultFinal = teste1.Intersect(teste2).ToArray();
                if (resultFinal.Count() == teste1.Count())
                    ok = true;

               if(ok)
               {//iguais
                    //entra aki se os 2 vetores forem iguais
               }
               else
               {//diferentes
                   //entra aki se os 2 vetores forem diferentes
               }

    • تم وضع علامة كإجابة بواسطة Marcus_v_f 17/ذو الحجة/1430 12:31 م
    17/ذو الحجة/1430 12:12 م
  • Opa... isso mesmo. Nunca tinha visto "teste1.Intersect(teste2).ToArray();" , e tambem se tivesse, nem saberia o que ele faz.

    Obrigado rapaz!
    17/ذو الحجة/1430 12:31 م