Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A dimenziók olyan irányok, amelyekben a tömb elemeinek specifikációja eltérő lehet. Egy tömb, amely a hónap minden napjára vonatkozóan tartalmazza az értékesítések összegét, egy dimenzióval rendelkezik (a hónap napja). Egy tömb, amely a hónap minden napjára vonatkozóan tartalmazza az értékesítések számát részleg szerint, két dimenzióval rendelkezik (a részleg száma és a hónap napja). A tömbök dimenzióinak számát rangjának nevezzük.
Megjegyzés:
A tulajdonság segítségével Rank meghatározhatja, hogy egy tömb hány dimenzióval rendelkezik.
Dimenziók használata
A tömb egy elemét úgy adhatja meg, hogy minden dimenzióhoz indexet vagy alsó indexet ad meg. Az elemek az egyes dimenziók mentén egybefüggők a 0 indextől a dimenzió legmagasabb indexén át.
Az alábbi ábrák a különböző rangokkal rendelkező tömbök fogalmi szerkezetét mutatják be. Az ábrák minden eleme az azt elérő indexértékeket jeleníti meg. A kétdimenziós tömb második sorának első elemét például indexek megadásával érheti (1, 0)
el.
Egy dimenzió
Számos tömbnek csak egy dimenziója van, például az egyes korú személyek száma. Az elem megadásának egyetlen követelménye az a kor, amelynek az elem a darabszámát tartalmazza. Ezért egy ilyen tömb csak egy indexet használ. Az alábbi példa egy változót deklarál 0 és 120 közötti életkorok egydimenziós tömbjének tárolására.
Dim ageCounts(120) As UInteger
Két dimenzió
Egyes tömbök két dimenzióval rendelkeznek, például az egyes épületek minden emeletén található irodák száma egy campuson. Egy elem specifikációja megköveteli az épületszámot és a padlót is, és minden elem tartalmazza az épület és a padló kombinációjának számát. Ezért egy ilyen tömb két indexet használ. Az alábbi példa egy változót deklarál, amely az irodai számok kétdimenziós tömbjének tárolására alkalmas, a 0–40-es és a 0–5. emeleti épületek esetében.
Dim officeCounts(40, 5) As Byte
A kétdimenziós tömböt téglalap alakú tömbnek is nevezik.
Három dimenzió
Néhány tömb három dimenzióval rendelkezik, például a térbeli értékekkel. Az ilyen tömbök három indexet használnak, amelyek ebben az esetben a fizikai tér x, y és z koordinátáit jelölik. Az alábbi példa egy változót deklarál, amely egy háromdimenziós levegőhőmérséklet-tömböt tárol egy háromdimenziós kötet különböző pontjain.
Dim airTemperatures(99, 99, 24) As Single
Több mint három dimenzió
Bár egy tömb legfeljebb 32 dimenzióval rendelkezhet, ritkán van háromnál több.
Megjegyzés:
Ha dimenziókat ad hozzá egy tömbhöz, a tömb által igényelt teljes tárterület jelentősen megnő, ezért körültekintően használjon többdimenziós tömböket.
Különböző dimenziók használata
Tegyük fel, hogy nyomon szeretné követni az aktuális hónap minden napjára vonatkozó értékesítési összegeket. Deklarálhat egy 31 elemből álló egydimenziós tömböt a hónap minden napjára, ahogy az alábbi példa is mutatja.
Dim salesAmounts(30) As Double
Tegyük fel, hogy nem csak egy hónap minden napjára, hanem az év minden hónapjára is ugyanazt az információt szeretné nyomon követni. Deklarálhat kétdimenziós tömböt 12 sorból (hónapokra) és 31 oszlopból (a napokra vonatkozóan), ahogy az alábbi példa mutatja.
Dim salesAmounts(11, 30) As Double
Tegyük fel, hogy úgy dönt, hogy a tömbje több mint egy év adatait tartalmazza. Ha 5 évig szeretné nyomon követni az értékesítési összegeket, deklarálhat egy háromdimenziós tömböt, amely 5 réteget, 12 sort és 31 oszlopot tartalmaz, ahogy az alábbi példa is mutatja.
Dim salesAmounts(4, 11, 30) As Double
Vegye figyelembe, hogy mivel az egyes indexek 0-tól a maximumig változnak, az egyes dimenziók salesAmounts
egy kisebbnek lesznek deklarálva, mint az adott dimenzióhoz szükséges hossz. Vegye figyelembe azt is, hogy a tömb mérete minden új dimenzióval nő. Az előző példák három mérete egyenként 31, 372 és 1,860 elem.
Megjegyzés:
Tömböt az utasítás vagy a Dim
New
záradék használata nélkül is létrehozhat. Meghívhatja például a CreateInstance metódust, vagy egy másik összetevő egy ilyen módon létrehozott tömböt adhat át a kódnak. Az ilyen tömböknek a 0-tól eltérő alsó határa is lehet. A GetLowerBound metódus vagy a LBound
függvény használatával mindig tesztelheti a dimenzió alsó határát.