Иди на текст

Низови

Низ поседује скуп података истог типа. Може бити:

  • једнодимензионални (енгл. single-dimensional),
  • вишедимензионални (енгл. multidimensional) или
  • назубљен (енгл. jagged).

Једнодимензионални низ

Низ можеш само декларисати...

int[] arr1;

...или декларисати и иницијализовати одређен број елемената низа помоћу оператора new подразумеваним вредностима који за тип int износе 0...

int[] arr2 = new int[10];

...или декларисати и иницијализовати низ конкретним вредностима...

int[] arr3 = new int[] { 5, 1, 9, 7, 0, 3, 6, 8, 4, 2 };

...што можеш записати скраћено:

int[] arr4 = { 5, 1, 9, 7, 0, 3, 6, 8, 4, 2 };

Исто као и у програмском језику C, у програмском језику C# индекс првог елемента низа је 0, а елементу низа можеш приступати наводећи име низа и његов индекс записан у угластим заградама. На пример:

int[] arr = { 5, 1, 9, 7, 0, 3, 6, 8, 4, 2 };
Console.WriteLine(arr[0]); // 5
arr[0]++;
Console.WriteLine(arr[0]); // 6

Иницијализован једнодимензионални низ можеш проследити методи као аргумент. На пример:

static void IspisiNiz(int[] niz)
{
    for (int i = 0; i < niz.Length; i++)
        Console.WriteLine(niz[i]);
}

static void Main()
{
    int[] arr = { 5, 1, 9, 7, 0, 3, 6, 8, 4, 2 };
    IspisiNiz(arr);
}

Својства и методе

У класи Array дефинисано је мноштво корисних својстава и метода за рад са низовима. У претходном примеру већ си се упознао са својством Length које враћа укупан број елемената низа. Остала својства можеш пронаћи у документацији.

Многе задатке са низовима које си мануелно решавао у програмском језику C, у програмском језику C# решаваћеш једноставним позивом методе дефинисане у класи Array. На пример, сортирање низа...

int[] arr = { 5, 1, 9, 7, 0, 3, 6, 8, 4, 2 };
Array.Sort(arr);    // arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }

...или обртање редоследа елемената низа:

int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Array.Reverse(arr);    // arr = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }

Остале методе можеш такође пронаћи у документацији.

Вишедимензионални низови

Вишедимензионални низови имају више од једне димензије. На пример, дводимензионални низ можеш декларисати на следећи начин...

int[,] arr1;

...или декларисати и иницијализовати одређен број елемената низа помоћу оператора new подразумеваним вредностима који за тип int износе 0...

int[,] arr2 = new int[5, 2];

...или декларисати и иницијализовати га конкретним вредностима...

int[,] arr3 = new int[,] { { 5, 1 }, { 9, 7 }, { 0, 3 }, { 6, 8 }, { 4, 2} };

...или краће записано:

int[,] arr4 = { { 5, 1 }, { 9, 7 }, { 0, 3 }, { 6, 8 }, { 4, 2} };

Назубљени низови

Назубљени низови су низови чији су елементи други низови различитих величина. Њих можеш да замислиш као низове низова. Ове низове можеш декларисати и иницијализовати на пример овако...

int[][] arr1 = new int[3][];

arr[0] = [1, 3, 5, 7, 9];
arr[1] = [0, 2, 4, 6];
arr[2] = [11, 22];

...или овако...

int[][] arr2 = 
[
    [1, 3, 5, 7, 9],
    [0, 2, 4, 6],
    [11, 22]
];

...или овако:

int[][,] arr3 =
[
    new int[,] { {1,3}, {5,7} },
    new int[,] { {0,2}, {4,6}, {8,10} },
    new int[,] { {11,22}, {99,88}, {0,9} }
];