Jak jsem slíbil minule, dneska si řekneme něco o polích.
Pole
Doposud jsme pracovali pouze s proměnnými, které obsahovaly pouze jednu hodnotu, a když jsme do ní nahráli novou, ta stará se smazala. To je někdy omezující, a tak existuje v ASP.NET datová struktura (pole), která umožňuje ukládat více hodnot.
Představte si mřížku, do které ukládáte různé hodnoty. Ta mřížka je právě pole. Stejně jako proměnné, i u pole má svůj datový typ (int/integer, string), takže nemůžete vedle sebe v poli mít čísla a řetězce.
Vytvoření
C#
typ[] jmeno = new typ[velikost];
VB
Dim jmeno(velikost) As Typ
Příklad
C#
int[] pole = new int[7];
VB
Dim pole(7) As Integer
Nyní jsme vytvořili pole typu integer (celá čísla), do kterého se vleze 7 hodnot.
Přidávání hodnot
Do pole přidáváme údaje pomocí indexů, které jsou ve VB.NET v kulatých a v C# v hranatých závorkách. Index se čísluje od nuly, takže když zadáte do pole velikost 7, index je od 0 do 6. Nyní si ukážeme, jak do pole přidávat hodnoty.
C#
string[] barvy = new string[5];
int cisloBarvy = 2;
barvy[0] = „Zelená“;
barvy[1] = „Modrá“;
barvy[2] = „Červená“;
barvy[3] = „Purpurová“;
barvy[4] = „Žlutá“;
Response.Write(„2. barva v poli je: „+barvy[cisloBarvy-1]“);
V příkladu jsme si vytvořili pole barvy typu string o velikosti 5 a do něj jsme vložili 5 barev (všimněte si, že index je od 0, jinak by překladač nahlásil chybu) a nakonec jsme si nechali vypsat druhou barvu (od proměnné cisloBarvy jsme museli odečíst 1, protože index je od 0).
VB
Dim barvy(5) As Integer
Dim cisloBarvy As Integer = 2
barvy(0) = „Zelená“
barvy(1) = „Modrá“
barvy(2) = „Červená“
barvy(3) = „Purpurová“
barvy(4) = „Žlutá“
Response.Write(„2. barva v poli je: „+barvy(cisloBarvy-1)“);
Pokud se vám nechce počítat velikost, můžete nechat překladač, ať si ji spočítá sám.
C#
string[] barvy = {„Zelená“,“Modrá“,“Červená“,“Purpurová“,“Žlutá“};
VB
Dim barvy() As String = {„Zelená“,“Modrá“,“Červená“,“Purpurová“,“Žlutá“}
A ještě tím ušetříte spoustu místa.
Vypisování pole
Pro výpis celého pole se dá využít cyklus for nebo speciálně upravený cyklus pro ASP.NET – foreach/For Each.
C#
string[] barvy = {„Zelená“,“Modrá“,“Červená“,“Purpurová“,“Žlutá“};
foreach(string barva in barvy){
Response.Write(barva+“
“);
}
VB
Dim barvy() As String = {„Zelená“,“Modrá“,“Červená“,“Purpurová“,“Žlutá“}
Dim barva As String
For Each barva in barvy
Response.Write(barva+“
“)
Next barva
A nakonec vám ukážu, jak lze vypsat pole pomocí for:
C#
string[] barvy = {„Zelená“,“Modrá“,“Červená“,“Purpurová“,“Žlutá“};
int i;
for(i=0;i < barvy.Length;i++){
Response.Write((i+1)+“. barva je: „+barvy[i]+“
“);
}
VB
Dim barvy() As String = {"Zelená","Modrá","Červená","Purpurová","Žlutá"}
Dim i As Integer
for i=0 to (barvy.Length-1)
Response.Write((i+1).toString()+". barva je: "+barvy(i)+"
")
Next i
Když necháváte překladač, aby si vypočítal velikost pole, může se vám hodit funkce .Length, která je stejná i v C# i ve VB a zjistí vám velikost pole.
To je pro dnešek vše, příště se podíváme na vytváření funkcí.