Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > ASP.NET 1.x och 2.x

Arrayer i C#

I C# kan man använda sig av en datstruktur som man kallar för Arrays (arrayer) som sparar samma typ av data i sig. Man kan t.ex. spara 100 strängar i en array och sedan använda den för att ta ut den informationen vid behov.

Deklarera arrayen

Det första man måste göra är att deklarera arrayen och bestämma vad förtyp av data den ska innehålla. Ska den innehålla strängar? Tal? I exemplet nedan skapar jag en array av typen int, den ska alltså spara tal. Vill du ha mer information om de olika datatyperna i C#? Läs min andra artikel: Variabler och Datatyper (Visual C#).

int enArray[100];

Det vi gjorde där är att vi skapade en array med namnet enArray av typen int. Inom klamrarna har vi hårdkodat (förbestämt) det maximala antalet poster som man kan spara i denna array, dvs 100.

Hur ska man kalla då på ett värde som ligger i position 10 eller 43? Jo, på detta vis:

int varde1 = enArray[10];
 

Det man gör är alltså att man refererar till postens position i arrayen för att få ut värdet. Jag valde att spara värdet som finns i den tionde positionen i en variabel av typen int med namnet varde1.

Jag skriver enArray[1], men jag får inte fram det korrekta första värdet, varför?

Jo, för att första värdet ligger i position 0. enArray[0]; ;)

Deklarera en char array

Jag personligen gillar denna typ av deklarering för att man kan göra den på olika sätt. Det vi ska försöka göra är att vi ska skapa en array av typen char och lägga in lite värden i den. Principen är densamma som ovan.

Sätt #1

char enArray[2];


enArray[0] = 'A';

enArray[1] = 'B';

Detta är kanske det mest standardiserade sättet att deklarer och initiera en variabel/array på.
Här nedan ska jag visa er ett annat smidigt sätt, vi ska deklarera arrayen utan att initieringsvärden, vi behöver inte heller ange storleken på arrayen.

char enArray[] = "detta blir till en char array";

Det som kommer att hända är att varje tecken kommer att få sig en position i denna array. Smidigt va? =)

Loopa ut information från en array

Säg att vi har en array som heter enArray av typen String med information som vi vill loopa ut, hur gör vi då?
Om du inte kan mycket om loopar så rekomenderar jag att du läser min andra artikel som förklarar lite mer om hur det går till, den heter: Loopar och Valmöjligheter (C# och VB.NET).

Här ger jag ett exempel:

String enArray[2];


enArray[0] = "Hej ";

enArray[1] = "då!";


for(int i = 0; i <= enArray.Length;i++)

{

    Console.WriteLine(enArray[i]);

}

Märk att jag loopar ut allt ända tills arrayens slut (enArray.Length).

Multidimensionella arrayer

Man kan även ha en array inuti en annan array, det är inte så krångligt faktiskt. Tänk dig att du har två arrayer, den ena heter arrayHamburgare och den andra arrayKorv som inehåller information om olika korvar och hamburgare. Du kanske vill då spara dem i en array som heter arraySkrapMat, det går att göra på ett smart och smidigt sätt.

Egentligen ska jag inte kalla det att ha en array i en array, för det är inte exakt så man gör, men tankegången är den samma. Jag kommer under nästa rubrik att gå igenom hur man egentligen lägger en en array (variabel) i en annan array. Jag ville bara få er att förstå principen.

Säg att vi vill ha 2 arrayer och i varje sådan ska det finnas 3 värden, de 2 arrayerna ska sparas i en gemensam array.

String[,] arrayMat =  new String[2,3] { {"Gurka","Sallat","Morötter"}, {"Äpple","Apelsin","Banan"} };

Vad hände nu då? Blev det rörigt? Lugn, jag ska förklara.

  1. Vi skapade en array av typen String med namnet arrayMat.
  2. Vi bestämde att vi ville ha 2 arrayer i denna array, och varje sådan array ska ha 3 värden
  3. Vi öppnar och stänger denna array med { och }, mellan dem ska vi slänga in dessa två arrayer.
  4. Självklart öppnar vi dessa arrayer med { och stänger med }, i dem ska vi lägga in alla tre värden i varje array. Jag har markerat dessa två arrayer med grön och understruken text.

Svårare än så är det faktiskt inte. Det gäller bara att hålla koll på positionerna.

En array i en array

Det är egentligen nu vi ska spara en array i en annan array:

int[][] dubbelArray = new int[][] { new int[] {1,2,2}, new int[] {2,3,4,5} };

Jag tror inte jag behöver förklara så mycket här, principen är densamma som i multidimensionella arrayer.

Slutord

Jag hoppas att ni får användning av denna artikel. Lycka till! 

Skapades: 2007-10-07 22:28:44
Skribent: Shadi
Lästs 2048 gånger
Betyg: 0 (artikeln har endast 0 röster, det krävs minst 5 för ett betyg)

Kommentarer

Timmie sa den 8 oktober 2007 kl 17:18:
Ett tips till artikeln skulle vara att du lägger till när man kan ha nytta till det istället för att göra på ett annat vis. Själv så ser jag detta bara som onödigt..
/ Timmie
Shadi sa den 8 oktober 2007 kl 17:48:
Man kan ha nytta av detta på olika sätt, inte minst vid utveckling av t.ex. textbaserade spel som är beroende av sparandet av temporärt data vid just en händelse.
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy