Tableaux (guide de programmation C#)

Vous pouvez stocker plusieurs variables du même type dans une structure de données de type tableau. Vous déclarez un tableau en spécifiant le type de ses éléments. Si vous souhaitez que le tableau stocke des éléments de n’importe quel type, vous pouvez spécifier object en tant que type. Dans le système de type unifié de C#, tous les types (les types référence et valeur, prédéfinis ou définis par l’utilisateur) héritent directement ou indirectement du type Object.

type[] arrayName;

Exemple

L’exemple suivant crée des tableaux unidimensionnels, multidimensionnels et en escalier :

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

Présentation du tableau

Un tableau possède les propriétés suivantes :

  • Un tableau peut être unidimensionnel , multidimensionnel ou en escalier.
  • Le nombre de dimensions et la longueur de chaque dimension sont établis lors de la création de l’instance de tableau. Ces valeurs ne peuvent pas être modifiées pendant la durée de vie de l’instance.
  • Les valeurs par défaut des éléments de tableau numériques sont définies sur zéro et les éléments de référence sont définis sur Null.
  • Un tableau en escalier est un tableau de tableaux, et par conséquent ses éléments sont des types référence et sont initialisés sur null.
  • Les tableaux sont indexés sur zéro : un tableau avec n éléments est indexée de 0 à n-1.
  • Les éléments de tableau peuvent être de n’importe quel type, y compris un type tableau.
  • Les types tableau sont des types référence dérivés du type de base abstrait Array. Tous les tableaux implémentent IList , et IEnumerable . Vous pouvez utiliser des tableaux d’itérations foreach en C#. Dans la mesure où les tableaux à une seule dimension implémentent également IList<T> , et IEnumerable<T> .

Comportement de valeur par défaut

  • Pour les types de valeur, les éléments de tableau sont initialisés avec la valeur par défaut, le modèle de 0 bits ; les éléments auront la valeur 0 .
  • Tous les types référence (y compris ceux qui n’acceptent pasles valeurs null) ont les valeurs null .
  • Pour les types valeur Nullable, HasValue a false la valeur et les éléments ont la valeur null .

Tableaux comme objets

En C#, les tableaux sont en fait des objets, et pas simplement des zones adressables de mémoire contiguë comme en C et C++. Array est le type de base abstrait de tous les types de tableau. Vous pouvez utiliser les propriétés et d’autres membres de classe qui Array possèdent. Par exemple, l’utilisation de la Length propriété pour récupérer la longueur d’un tableau. Le code suivant affecte la longueur du tableau numbers, c’est-à-dire la valeur 5, à une variable appelée lengthOfNumbers :

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

La classe Array fournit beaucoup d’autres méthodes et propriétés utiles pour trier, rechercher et copier des tableaux. L’exemple suivant utilise la Rank propriété pour afficher le nombre de dimensions d’un tableau.

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.

Voir aussi

Pour plus d'informations, voir la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.