Jag har fastnat i vinkelvolten.. =) Kan du förklara lite hur du ville jämföra... Hängde inte med. Om det nu skulle vara en string-array: Hej. Gjorde en fulkodning som borde gora det du vill, finns sakert bra mycket effektivare och vackrare satt att gora det pa.Iterera en 2D-array.
Jag vill iterera genom en 2D-array, men!
Jag vill ta första elementet, jämföra det med alla andra efterföljande element i arrayen, hoppa till element två, jämföra det med alla efterföljande element, hoppa till element 3, jämföra med alla efterföljande element osv. osv.. Jag måste ta rad för rad, inte kolumnvis..
Någon som har ett förslag hur detta (enklast) skall göras? Jag har helt kört fast.. tackar i förväg!
/MartinSv: Iterera en 2D-array.
Utgår från en array som ser ut som följer:
aa ab ac ad ae
ba bb bc bd be
ca cb cc cd ce
da db dc dd de
Hur skulle de jämföras? Kanske är lite seg idag, men hjälper gärna till om du förklarar hur det skall gå till väga...Sv: Iterera en 2D-array.
for (int i = 0; i < MinArray.Length; i++)
{
if (i < MinArray.Length - 1)
{
for (int j = i + 1; j < MinArray.Length; j++)
{
//gör jämförelse, t.ex. såhär:
//if (MinArray[i] == MinArray[j])
}
}
}
/Johan
Sv:Iterera en 2D-array.
du är nog rätt ute =), jag förklarade inte så bra mitt i natten.
Arrayen ser ut förenklat ut så här.: bokstäverna är på "riktigt": ärenden och siffrorna är dess omfattningar.. men det är mindre viktigt.
a b c d e
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
då vill jag jämföra a1 med b1, b2, b3, c1, c2 osv..
sen hoppa till a2, jämföra a2 med b1, b2, b3, c1, c2 osv genom hela arrayen. sista jämförelsen blir d3 mot e1, e2 och e3.
jag vill alltså inte jämföra element inom samma rad men varje element ska kollas med alla efterföljande element. Sv: Iterera en 2D-array.
string[,] myAr = new string[5, 7];
for (int i = 0; i < myAr.GetLength(0); i++) // Bredden pa arrayen
{
for (int j = 0; j < myAr.GetLength(1)-1; j++) // Hojden pa arrayen
{
// Har inne itererar du igenom alla rutor i arrayen, undantaget den sista raden.
// Nu maste du iterera igenom alla rutor du ska jamfora med.
for (int m = 0; m < myAr.GetLength(0); m++) // bredden
{
for (int n = j + 1; n < myAr.GetLength(1); n++)
{
// Gor din jamforelse!
myAr[i, j]; // Detta representerar rutan som ar basen for din jamforelse.
myAr[m, n]; // Detta representerar rutan du vill jamfora med.
}
}
}
}