Arrays i C#: en enkel guide til lagring og bruk av flere verdier

Arrays er en av de første datastrukturene du møter når du lærer C#, men også en kilde til mange små og irriterende feil. Forstår du hvordan de faktisk fungerer, blir koden din både ryddigere og lettere å feilsøke.
I denne artikkelen går vi steg for steg gjennom hva arrays er, hvordan du lager dem, leser og endrer data, og hvilke vanlige feil du bør unngå. Alt med korte eksempler du kan teste selv.
Hva er et array i C#, og når bør du bruke det?
Et array er en samling med flere verdier av samme type, lagret etter hverandre i minnet. Du kan se det som en rekke nummererte bokser, der hver boks har en indeks som starter på 0.
Arrays passer godt når du vet omtrent hvor mange elementer du trenger, og når størrelsen ikke skal endres hele tiden. Hvis du ofte skal legge til eller fjerne elementer, kan andre samlinger somList<T>være mer praktiske.
Slik deklarerer og oppretter du et array
I C# skjer det ofte to ting når du vil ha et array: du erklærer en variabel, og du oppretter selve arrayet. Dette kan gjøres hver for seg eller i samme linje.
Eksempel på å erklære først og opprette etterpå:
Eksempel:
int[] tall; // erklær variabel
tall = new int[3]; // opprett array med plass til 3 heltall
Du kan også gjøre alt på én linje:
int[] poeng = new int[5];
Initialisering: gi arrayet startverdier
Ofte vil du gi arrayet noen faste startverdier med en gang. Da slipper du å tildele hvert enkelt element senere.
Eksempel:
string[] navn = new string[] { "Anna", "Bjørn", "Celine" };
Her opprettes et array med lengde 3, og hvert element får en verdi. C# kan også gjette typen og lengden når det er åpenbart:
var temperaturer = new[] { 18.5, 19.2, 21.0 };
Forstå lengde og indeksering
Alle arrays i C# er nullindeksert, det vil si at det første elementet har indeks 0, det andre indeks 1, og så videre. Siste element har alltid indeksLength – 1.
Eksempel:
int[] alder = new int[] { 20, 25, 30 };
int første = alder[0]; // 20
int siste = alder[alder.Length - 1]; // 30
Hvis du prøver å lese eller skrive utenfor gyldig område, for eksempel alder[3] når lengden er 3, får du enIndexOutOfRangeException.
Endre elementer i et array
Selv om størrelsen på et array er fast, kan du endre innholdet i hvert element. Det gjør du ved å tilordne en ny verdi til en gitt indeks.
Eksempel:
int[] poeng = new int[] { 10, 20, 30 };
poeng[1] = 25; // endrer andre element
poeng[0] += 5; // øker første element til 15
Dette er nyttig når du vil oppdatere status, for eksempel poengsummer, antall forsøk eller lagrede målinger.
Løkker og arrays: gå gjennom alle elementer
Det vanligste du gjør med et array er å gå gjennom alle elementene, for eksempel for å skrive dem ut eller beregne en sum. Da erfor– ogforeach-løkker nyttige.
Eksempel med for-løkke:
int[] tall = { 2, 4, 6, 8 };
for (int i = 0; i < tall.Length; i++)
{
Console.WriteLine(tall[i]);
}
Eksempel med foreach-løkke:
int[] tall = { 2, 4, 6, 8 };
foreach (int t in tall)
{
Console.WriteLine(t);
}
forgir deg tilgang til indeksen, mensforeachleser mer naturlig når du bare trenger verdiene.
Vanlige feil og hvordan du unngår dem

Noen feil går igjen når nye utviklere jobber med arrays. Her er tre klassikere og enkle måter å tenke på for å unngå dem.
1. Glemmer at lengden er fast
Mange prøver å “legge til” elementer med myArray[myArray.Length]. Det krasjer alltid, fordi siste gyldige indeks er Length - 1. Hvis du ofte trenger å legge til eller fjerne verdier, vurderList<T>i stedet for et rent array.
2. Bruker feil indeks i løkker
En typisk off-by-one-feil er å skrive i <= myArray.Length i stedet for i < myArray.Length. Den første vil gå én for langt. Hvis du er usikker, tenk: “Indekser går fra 0 til Length - 1, så løkka må stoppe før Length.”
3. Forutsetter at alle posisjoner er fylt
Når du oppretter et array med lengde, men ikke gir startverdier, fylles det med standardverdier: 0 for tall, false for bool og null for referansetyper som string. Husk å håndtere dette i logikken din, spesielt hvis du skal bruke verdiene videre.
Når bør du velge array, og når noe annet?
Array er fint når du jobber med faste mengder data, som ukedager, måneder eller en definert tabell med målinger. De gir forutsigbar ytelse og enkel indeksbasert tilgang.
Trenger du derimot å:
- legge til og fjerne elementer ofte
- sortere og filtrere dynamisk
- jobbe med ukjent antall elementer
da er strukturer somList<T>,Dictionary<TKey, TValue>eller andre generiske samlinger ofte mer praktiske enn rene arrays.
En liten oppgave du kan prøve selv
For å gjøre dette konkret, prøv å skrive et lite konsollprogram som:
- Oppretter et
int[]med fem tall. - Skriver alle tallene ut på én linje.
- Regner ut gjennomsnittet og skriver det ut.
Forsøk først medfor-løkke, og deretter medforeach, så ser du forskjellen i praksis. Dette gir deg en god følelse av hvordan arrays samarbeider med løkker og enkel matematikk.
Oppsummering: nøkkelpunkter om arrays i C#
Det viktigste å ta med seg er at arrays har fast lengde, er nullindekserte og lagrer verdier av én bestemt type. Kombinert med løkker gir de deg et enkelt, men effektivt verktøy for å håndtere flere verdier på en strukturert måte.
Når disse grunnprinsippene sitter, blir det også lettere å forstå mer avanserte samlinger og datastrukturer som bygger videre på de samme ideene.









0 kommentarer