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

Do datové struktury pole můžete uložit více proměnných stejného typu. Pole deklarujete zadáním typu jeho prvků. Pokud chcete, aby pole ukládal prvky libovolného typu, můžete object zadat jako jeho typ. V jednotném systému typů jazyka C# dědí všechny typy, předdefinované a uživatelem definované typy odkazů a typy hodnot 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 polí

Pole má následující vlastnosti:

  • Pole může být jednorozměrné, multidimenzionální nebo vícenásobné.
  • Počet dimenzí a délka každé dimenze jsou vytvořeny při vytvoření instance pole. Tyto hodnoty nelze 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ícesocené pole je pole polí, a proto jeho prvky jsou odkazové typy a jsou inicializovány na null .
  • Pole jsou indexována od nuly: pole s n prvky se indexuje 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 Array . Všechna pole implementují IList , a IEnumerable . Pomocí příkazu foreach můžete iterovat polem. Jednorozměrná pole také implementují a IList<T> IEnumerable<T> .

Chování výchozí hodnoty

  • U typů hodnot jsou prvky pole inicializovány s výchozí hodnotou, 0bitovým vzorem. Elementy budou mít hodnotu 0 .
  • Všechny odkazové typy (včetně typů s možnou hodnotou null)mají hodnoty null .
  • Pro typy hodnot s možnou hodnotou null je nastavená na a HasValue false prvky by byly nastaveny na null .

Pole jako objekty

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

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

Třída Array 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 dimenzí 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#.