Pole (Průvodce programováním v C#)

V datové struktuře pole můžete uložit více proměnných stejného typu. Deklarujete pole zadáním typu jeho prvků. Chcete-li, aby pole ukládalo prvky libovolného typu, můžete zadat object jako jeho typ. V rámci sjednoceného typu systému C# všechny typy, předdefinované a uživatelsky definované typy odkazů a typy hodnot dědí přímo nebo nepřímo z Object .

type[] arrayName;

Příklad

Následující příklad vytvoří jednorozměrná, multidimenzionální a vícenásobná pole:

class TestArraysClass
{
    static void Main()
    {
        // Declare a single-dimensional array of 5 integers.
        int[] array1 = new int[5];

        // Declare and set array element values.
        int[] array2 = new int[] { 1, 3, 5, 7, 9 };

        // Alternative syntax.
        int[] array3 = { 1, 2, 3, 4, 5, 6 };

        // Declare a two dimensional array.
        int[,] multiDimensionalArray1 = new int[2, 3];

        // Declare and set array element values.
        int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

        // Declare a jagged array.
        int[][] jaggedArray = new int[6][];

        // Set the values of the first array in the jagged array structure.
        jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
    }
}

Přehled pole

Pole má následující vlastnosti:

  • Pole může být jednorozměrné, multidimenzionální nebo vícenásobné.
  • Počet rozměrů a délka každé dimenze jsou vytvořeny při vytvoření instance pole. Tyto hodnoty nejde během životnosti instance změnit.
  • Výchozí hodnoty prvků číselného pole jsou nastaveny na nulu a referenční prvky jsou nastaveny na null .
  • Vícenásobné pole je pole pole, a proto jeho prvky jsou odkazové typy a jsou inicializovány na null .
  • Pole jsou indexována nulou: pole s n elementy je indexováno z 0 do n-1 .
  • Prvky pole mohou být libovolného typu, včetně typu pole.
  • Typy polí jsou odkazové typy odvozené od abstraktního základního typu . Všechna pole implementují IList , a IEnumerable . Můžete použít příkaz foreach k iterování v poli. Jednorozměrná pole také implementují IList<T> a IEnumerable<T> .

Chování výchozí hodnoty

  • U hodnotových typů jsou prvky pole inicializovány s výchozí hodnotou, 0 bitů vzoru; prvky budou mít hodnotu .
  • Všechny typy odkazů (včetně hodnot, které nejsou null), mají hodnoty .
  • Pro typy HasValue s možnou hodnotou null je nastavena na false a prvky budou nastaveny na null .

Pole jako objekty

V jazyce C# jsou pole vlastně objekty a nikoli pouze adresovatelné oblasti souvislé paměti jako v jazyce C a C++. Array je abstraktní základní typ pro všechny typy polí. Můžete použít vlastnosti a další členy třídy, které Array mají. Příkladem je použití Length Vlastnosti k získání délky pole. Následující kód přiřadí délku numbers pole, tj 5 . proměnné s názvem lengthOfNumbers :

int[] numbers = { 1, 2, 3, 4, 5 };
int lengthOfNumbers = numbers.Length;

ArrayTřída poskytuje mnoho dalších užitečných metod a vlastností pro řazení, vyhledávání a kopírování polí. Následující příklad používá Rank vlastnost k zobrazení počtu rozměrů pole.

class TestArraysClass
{
    static void Main()
    {
        // Declare and initialize an array.
        int[,] theArray = new int[5, 10];
        System.Console.WriteLine("The array has {0} dimensions.", theArray.Rank);
    }
}
// Output: The array has 2 dimensions.

Viz také

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.