On olemassa yksiulotteisia taulukoita, moniulotteisia taulukoita sekä taulukoita, jotka koostuvat taulukoista (jagged array). Taulukoissa olevia arvoja sanotaan alkioiksi ja niiden paikkaan taulukossa viitataan indeksillä. C#:ssa taulukoiden indeksit alkavat nollasta. Taulukko esitellään lisäämällä [] tyypin perään (esim. int[] on yksiulotteinen taulukko int-tyyppiä). Kun taulukon koko on määritelty, sitä ei voi enää muuttaa.
|1|3|62|24|
// yksiulotteinen taulukko, johon mahtuu 10 lukua
int[] luvut = new int[10];
// Length-property palauttaa taulukon pituuden
// eli kuinka monta alkiota siihen mahtuu
for (int i = 0; i < luvut.Length; i++)
{
Console.Write("Anna {0}. luku: ", i + 1);
// laitetaan syötetty luku paikkaan i
luvut[i] = int.Parse(Console.ReadLine());
}
// tulostetaan luvut
Console.WriteLine("Annoit luvut:");
foreach(int luku in luvut)
{
Console.WriteLine(luku);
}
Yksiulotteisen taulukon voi myös alustaa näppärästi
string[] sanat = { "Matti", "Teppo", "Seppo" };
int[] lukuja = { 1, 2, 3, 4, 5 };
|52|24|8| |7 |62|9|Moniulotteinen taulukko esitellään kuten yksiulotteinen, sillä erotuksella, että jokaisesta lisäulottuvuudesta lisätään yksi pilkku hakasulkujen sisään (esim. int[,] on kaksiulotteinen ja string[,,] on kolmiulotteinen taulukko).
// kaksiulotteinen taulukko 3x2
int[,] luvut = new int[3, 2];
// GetLength palauttaa suluissa annetun ulottuvuuden pituuden
// 1. ulottuvuus on tässä pituudeltaan 3
for (int rivi = 0; rivi < luvut.GetLength(0); rivi++)
{
// 2. ulottuvuus on tässä pituudeltaan 2
for (int sarake = 0; sarake < luvut.GetLength(1); sarake++)
{
Console.Write("Rivi {0} sarake {1}: ", rivi+1, sarake+1);
luvut[rivi, sarake] = int.Parse(Console.ReadLine());
}
}
// kolmiulotteinen taulukko
int[, ,] luvut2 = new int[3, 4, 5];
luvut[1,2,3] = 234;
Moniulotteisenkin taulukon voi alustaa näppärästi
int[,] luvut =
{
{1,2,3},
{2,3,4},
{3,4,5}
};
int[,,] luvut2 =
{
{
{1,2,3},
{2,3,4},
{3,4,5}
},
{
{4,5,6},
{5,6,7},
{6,7,8}
}
};
Jagged array on taulukko, jossa jokainen alkio on taulukko. Alkiotaulukot voivat olla eri pituisia. Alla esimerkki, jossa pyydetään käyttäjää syöttämään muutama lause. Lauseet pilkotaan välilyöntien kohdalta ja saaduista sanoista tulee taulukko.
// taulukko string-taulukoita
string[][] sanat = new string[3][];
string lause;
for (int i = 0; i < sanat.Length; i++)
{
Console.Write("Kirjoita jotain: ");
// luetaan syötetty lause
lause = Console.ReadLine();
// pilkotaan lause välilyöntien kohdalta
// ja sijoitetaan syntynyt taulukko
// sanat-taulukkoon
sanat[i] = lause.Split(' ');
}
Alustaminen
string[][] sanat =
{
new string[]{"kaksi","sanaa"},
new string[]{"yksi","sana","enemmän"},
new string[]{"sana"}
};