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.

Yksiulotteinen taulukko

Yksiulotteisen taulukon voi ajatella luetteloksi

|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 };

Moniulotteiset taulukot

Jos yksiulotteinen taulukko oli lista, niin kaksiulotteista taulukkoa voisi ajatella ruudukkona, mistä löytyy rivi ja sarake.

|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}
    }
};

Taulukko taulukoita (jagged array)

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"}
};

Navigointi

Social Media