A tömböket úgy tudjuk egyszerűen elképzelni, hogy dobozokat rakunk egymás mellé, a dobozokat megszámozzuk. A dobozok sorozatát nevezzük tömbnek. Az egyes dobozokat a tömb elemeinek nevezzük. Ha egy dobozra hivatkozni akarunk, akkor megnevezzük a sorszámát, más néven az indexét.
Egy dimenziós tömbök
A dobozok egy sorban vannak. Egy sorszámmal tudunk hivatkozni valamelyikre. A sorszámozás mindig 0-val kezdődik.
Két dimenziós tömbök
Amikor létrehozom a tömböt, akkor megmondom a programnak, hogy egy, két vagy több dimenziós tömböt akarok létrehozni és megmondom, hogy a tömb elemeibe milyen típusú adatokat tehetek. Az adatok típusa kötött, a korábban felsorolt adatok bármelyike lehet, de egy tömbben mindig csak azonos típusú adatok lehetnek.
Ebben a példában 10 elemű tömböt hozok létre. A tömb elemek 0-tól 9-ig sorszámozhatók (indexelhetők). A tömb neve t.
int[] t = new int[10];
A tömb 5-ös sorszámú eleme a t[5], mivel 0-tól sorszámozzuk a tömböt, ezért ez az elem valójában a 6. a sorban.
Az alábbi példában két dimenziós tömböt hozok létre. A tömb elemei stringek lehetnek:
string[] s = new string[5,10];
Megállapodás szerint az első szám a sorok száma, a második az oszlopok száma, tehát 5 soros, 10 oszlopos tömböt hoztam létre. a példában szereplő tömb neve s. A 3. sor 4. eleme pedig így érhető el: s[3,4].
A tömbök kezelése szoros összefüggésben van a ciklus programszerkezetekkel. Ha egy egy dimenziós tömb elemeit akarjuk feltölteni adatokkal vagy kiíratni, akkor az alábbi kódot lehet használni:
//Az alábbi pás ros létrehoz egy 100 elemű egész számokból álló tömböt és feltölti páros számokkal
int[] t = new int[100];
int i=0;
for (i = 0; i < 100; i++){
t[i] = 2*i+2;
}
//Az alábbi pár sor pedig fordított sorrendben kiírja a tömb elemeket
for(i=99; i>=0; i--){
Console.WriteLine( i );
}
Ha két dimenziós tömbünk van, akkor végig kell menni a soronként az oszlopokon, majd sort emelni, azaz két db. egymásba ágyazott ciklust kell hasznáálnunk.
//Az alábbi pár sor létrehoz egy 5x10-es tömböt. A tömb elemeit a sor és oszlopok szorzatával tölti fel.
int[] tt = new int[5,10];
int i = 0;
int j = 0;
for (i = 0; i < 5; i++){
for(j = 0; j < 10; j++){
t[i,j] = 2*i+2;
}
}
//Az alábbi pár sor pedig kiírja a tömb elemeket, egymás mellé a sorokat és a sorok után sort emel.
for(i=0; i<5; i--){
for ( j = 0; j<10; j++){
Console.Write( tt[i,j] + " ");
}
Console.WriteLine();
}