C Sharp 8

Chaque version de C# apporte son lot de nouveautés. L’intérêt de ce langage est qu’il est vivant et évolue très vite, facilitant la vie des devs au fils des versions.
La version 8 est sortie fin 2019, elle propose de nombreuses fonctionnalités inédites.
Nous allons en étudier deux dans cet article: les index et les plages.

Les plages

L’opérateur de plage nous permet d’extraire simplement une partie d’une séquence. Il est représenté par deux points ..

var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var soustab = tab[3..6];
 Console.WriteLine($"{string.Join(", ", soustab)}");

La console affiche 4, 5, 6.

Dans l’exemple ci-dessus, l’opérateur plage récupère les éléments de l’indice 3 à l’indice 6 non inclus. L’indice de départ est inclusif et l’indice de fin est exclusif.

On peut également l’utiliser en créant un objet Range.

          
var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Range range = 3..5;
var soustab = tab[range];
Console.WriteLine($"{string.Join(", ", soustab)}");

La console affiche 4, 5.

Il y a plusieurs variantes:

var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var soustab = tab[..];
Console.WriteLine($"{string.Join(", ", soustab)}");

La console affichera le tableau entier.

         
var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var soustab = tab[2..];
Console.WriteLine($"{string.Join(", ", soustab)}");

La console affichera toutes les valeurs du tableau sauf les deux premiers (3, 4, 5, 6, 7, 8, 9, 10).

var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var soustab = tab[..3];
Console.WriteLine($"{string.Join(", ", soustab)}");

La console affichera les trois premiers éléments du tableaux (1, 2, 3).

Les index

L’index nous donne une nouvelle manière d’accéder au élément d’une séquence. Représenté par le symbole ^, il permet d’utiliser la fin du tableau comme référence.

Ainsi pour accéder au dernier élément d’un tableau on utilisera l’écriture suivante tab[^1].

var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var last = tab[^1];
Console.WriteLine(last);

La console affichera 10.

^2 renverra l’avant dernier élément, etc…

On peut également l’utiliser en créant un objet Index.

        
var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Index idx = ^2;
var nbr = tab[idx];
Console.WriteLine(nbr);

La console affichera l’avant dernier élément (9).

On peut également utiliser les plages et les index ensemble.

 
var tab = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var quatrederniers = tab[^4..];
Console.WriteLine($"{string.Join(", ", quatrederniers)}");

La console affichera les quatre derniers éléments du tableau (7, 8, 9, 10).

Voilà, c’est pas une révolution, mais ça peut toujours être utile pour gérer l’accès aux éléments de nos séquences.

Image by Nikin from Pixabay

Auteur : Daniel MINKO FASSINOU

Laisser un commentaire




Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.