Rozměry pole v jazyce Visual Basic

Dimenze je směr, ve kterém můžete měnit specifikaci prvků pole. Pole, které obsahuje celkový prodej pro každý den v měsíci, má jednu dimenzi (den v měsíci). Pole, které obsahuje celkový prodej podle oddělení pro každý den v měsíci, má dvě dimenze (číslo oddělení a den v měsíci). Počet dimenzí, které matice má, se nazývá jeho pořadí.

Poznámka:

Pomocí vlastnosti můžete Rank určit, kolik dimenzí pole má.

Práce s dimenzemi

Prvek pole zadáte zadáním indexu nebo dolního indexu pro každou z jeho dimenzí. Prvky jsou podél každé dimenze souvislé od indexu 0 až po nejvyšší index pro danou dimenzi.

Následující ilustrace znázorňují koncepční strukturu polí s různými pořadími. Každý prvek na ilustracích zobrazuje hodnoty indexu, které k němu přistupují. Například můžete získat přístup k prvnímu prvku druhého řádku dvojrozměrného pole zadáním indexů (1, 0).

Diagram that shows a one-dimensional array.

Diagram that shows a two-dimensional array.

Diagram that shows a three-dimensional array.

Jedna dimenze

Mnoho polí má pouze jednu dimenzi, například počet lidí v každém věku. Jediným požadavkem na určení prvku je věk, pro který tento prvek obsahuje počet. Proto takové pole používá pouze jeden index. Následující příklad deklaruje proměnnou, která má obsahovat jednorozměrné pole věkových počtů pro věk 0 až 120.

Dim ageCounts(120) As UInteger

Dvě dimenze

Některá pole mají dvě rozměry, například počet kanceláří na každém patře každé budovy v areálu. Specifikace prvku vyžaduje číslo budovy i podlahu a každý prvek obsahuje počet pro danou kombinaci budovy a podlahy. Proto takové pole používá dva indexy. Následující příklad deklaruje proměnnou pro dvourozměrnou řadu počtů kanceláří pro budovy 0 až 40 a podlaží 0 až 5.

Dim officeCounts(40, 5) As Byte

Dvojrozměrné pole se také nazývá obdélníkové pole.

Tři rozměry

Několik polí má tři rozměry, například hodnoty v trojrozměrném prostoru. Takové pole používá tři indexy, které v tomto případě představují souřadnice x, y a z fyzického prostoru. Následující příklad deklaruje proměnnou, která má uchovávat trojrozměrné pole teplot vzduchu v různých bodech trojrozměrného objemu.

Dim airTemperatures(99, 99, 24) As Single

Více než tři dimenze

I když pole může mít až 32 dimenzí, je vzácné mít více než tři.

Poznámka:

Když do pole přidáte dimenze, celkové úložiště potřebné pole se výrazně zvýší, takže používejte multidimenzionální pole s opatrností.

Použití různých dimenzí

Předpokládejme, že chcete sledovat objem prodeje pro každý den aktuálního měsíce. Můžete deklarovat jednorozměrné pole s 31 prvky, jeden pro každý den v měsíci, jak ukazuje následující příklad.

Dim salesAmounts(30) As Double

Teď předpokládejme, že chcete sledovat stejné informace nejen pro každý den v měsíci, ale i pro každý měsíc v roce. Můžete deklarovat dvojrozměrnou matici s 12 řádky (pro měsíce) a 31 sloupců (pro dny), jak ukazuje následující příklad.

Dim salesAmounts(11, 30) As Double

Teď předpokládejme, že se rozhodnete, že budete mít informace o poli po dobu více než jednoho roku. Pokud chcete sledovat objem prodeje po dobu 5 let, můžete deklarovat trojrozměrné pole s 5 vrstvami, 12 řádky a 31 sloupci, jak ukazuje následující příklad.

Dim salesAmounts(4, 11, 30) As Double

Všimněte si, že vzhledem k tomu, že každý index se liší od 0 do svého maxima, je každá dimenze salesAmounts deklarována jako jedna menší než požadovaná délka dané dimenze. Všimněte si také, že velikost pole se zvyšuje s každou novou dimenzí. Tři velikosti v předchozích příkladech jsou 31, 372 a 1 860 prvků.

Poznámka:

Pole můžete vytvořit bez použití Dim příkazu nebo klauzule New . Můžete například volat metodu CreateInstance nebo jiná komponenta může tímto způsobem předat kód pole vytvořenému tímto způsobem. Takové pole může mít jinou mez než 0. Dolní mez dimenze můžete vždy testovat pomocí GetLowerBound metody nebo LBound funkce.

Viz také