Langage C# 8 – Accès aux éléments des ensembles de données (types Index et Range)

Présentation
La version 8 du langage C# propose une nouvelle syntaxe, permettant de simplifier l’écriture du code lors de l’accès à des éléments dans un ensemble de données (tableaux, collections, chaînes de caractères, …).
Soit le tableau de données suivant :

int[] TabNombres = new int[] { 1, 3, 4, 8, 12, 15, 17, 20, 24, 27 };

Utilisation du type Index
Le bloc de code suivant :

Index i1 = 5;
int Nombre1 = TabNombres[i1];

permet d’accéder au 6ème élément du tableau à partir du 1er élément. Ainsi la variable Nombre1 contient la valeur 15.

Le bloc de code suivant :

Index i2 = ^3; // Utilisation du symbole ^
int Nombre2 = TabNombres[i2];

permet d’accéder au 1er élément du tableau à partir du dernier élément du tableau. Ainsi la variable Nombre2 contient la valeur 20.

Utilisation du type Range
L’instruction :

IEnumerable<int> result1 = TabNombres.Skip(1).Take(3);

Permet d’obtenir les nombres 3, 4 et 8 à partir du tableau. A partir de la version 8 du langage C#, l’instruction

Range r1 = 1..3;
var result = TabNombres[r1];

permet d’obtenir le même résultat.

Autres exemples :

// Permet d’obtenir les éléments situés entre le premier et le dernier.
int[] tab1 = TabNombres[1..^ 1];

// Permet d’obtenir les éléments du 3ème au dernier.
int[] tab2 = TabNombres[2..];

// Permet d’obtenir les éléments du premier au 2ème à partir du dernier élément.
int[] tab3 = TabNombres[..^2];

// Permet d’obtenir tous les éléments.
int[] tab4 = TabNombres[..];

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.