Avatar billede nae Nybegynder
27. juli 2006 - 08:44 Der er 9 kommentarer

Sammenligne værdier af 2 arrays?

Hej, jeg har brug for at sammenligne felter i 2 dobbelte arrays, og jeg ville høre om der var en bedre måde end denne:

if (input1[i,0].Equals(input2[j,0]))
{
....
}

Da jeg kun får et match ud? (Der burde være en hel del matches)
På forhånd tak
Avatar billede the_party_dog Nybegynder
27. juli 2006 - 08:46 #1
Skal det ikke være:

if (input1[i,j].Equals(input2[i,j]))
{
....
}
Avatar billede dr_chaos Nybegynder
27. juli 2006 - 08:56 #2
kan du ikke gennemløbe de 2 arrays og når en værdi er fundet indsætter du den i et 3. array og til sidst har du et 3. array som indeholder alle ens elementer
Avatar billede nae Nybegynder
27. juli 2006 - 09:07 #3
The Party Dog> nej for det er et array med [navn][værdi] så først tjekker jeg om navnet passer og derefter om værdien passer:
if (input1[i,0].Equals(input2[j,0]))
{
  if (input1[i, 1].Equals(input2[j, 1]))
  {
  ...
  }
}
og så har jeg nogle forloops der løber igennem.

dr_chaos> Jo det vil jeg også have gjort, men indtilvidere har jeg problemer med at få sammenlignet dem? Skal jeg lave en seperat funktion til at lægge i det 3 array, eller hvordan gøres det nemmest?
Avatar billede innercitydk Nybegynder
27. juli 2006 - 10:35 #4
Den burde sådan set løbe alle mulige igennem med den kode du har lavet. Prøv engang at lave sammenligning på strings når det gælder navnet:

for(int i=0; i<input1.Length; i++)
{
  for(int j=0; j<input2.length; j++)
  {
    if (input1[i,0].ToString()==input2[j,0].ToString())
    {
      if (input1[i, 1].Equals(input2[j, 1]))
      {
        //Kode der skal køres ved sammenfald.
      }
    }
  }
}
Avatar billede nae Nybegynder
27. juli 2006 - 10:44 #5
innercitydk> Har prøvet både med din løsning og for(int i=0; i<input1.Length; i++)
{
  for(int j=0; j<input2.length; j++)
  {
    if (input1[i,0].ToString()==input2[j,0].ToString())
    {
      if (input1[i, 1].ToString()==input2[j, 1].ToString())
      {
        //Kode der skal køres ved sammenfald.
      }
    }
  }
}
Dog uden nogen forskel. Der findes et tilfælde hvor både input1[navn][værdi] er lig med input2[navn][værdi], men efter det ene tilfælde er fundet finder den ikke mere :/ og jeg er 100% sikker på der er flere?
Avatar billede innercitydk Nybegynder
27. juli 2006 - 10:51 #6
Hmm.. Mon det kan forekomme pga. forskel i størrelsen på begyndelsesbogstavet?!

.ToLower()

for(int i=0; i<input1.Length; i++)
{
  for(int j=0; j<input2.length; j++)
  {
    if (input1[i,0].ToString()==input2[j,0].ToString())
    {
      if (input1[i, 1].ToString().ToLower()==input2[j, 1].ToString().ToLower())
      {
        //Kode der skal køres ved sammenfald.
      }
    }
  }
}
Avatar billede nae Nybegynder
27. juli 2006 - 13:30 #7
Jeg kan se det ikke var sammenligningen men den måde jeg satte de forskellige arrays sammen. Nogle af felterne i excel var sorteret efter navn og andre sheets var ikke. Er det muligt at sortere et 2-D array udefter f.eks. [navn] og [værdien] så flytter med?
Avatar billede Syska Mester
27. juli 2006 - 16:58 #8
Der burde vel stadig være lige mange ens selvom du sortere det....

// ouT
Avatar billede innercitydk Nybegynder
28. juli 2006 - 11:57 #9
Loopet kører nested fra i-j. Det vil sige at for hver værdi af [i] gennemløbes alle mulige værdier for [j], altså hele længden på arrayet. Derfor er sorteringen underordnet og burde ikke give afvigelser.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester