Le type Index et l’opérateur ^
Référencez des éléments depuis la fin d’une collection.
Le type Index et l’opérateur ^ est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.
Découvrez le type d’index
C# fournit un type dédié, System.Index, pour décrire une position dans une séquence. Contrairement à un int classique, un Index peut représenter une position comptée depuis la fin d’une collection, et pas seulement depuis le début.
Le code tel que « donnez-moi le dernier élément » devient ainsi explicite et sûr.
using System;
int[] numbers = { 10, 20, 30, 40, 50 };
Index first = 0;
Console.WriteLine(numbers[first]); // 10L’opérateur ^ (depuis la fin)
L’opérateur accent circonflexe ^ construit un Index qui compte depuis la fin. ^1 désigne le dernier élément, ^2 l’avant-dernier, et ainsi de suite.
Notez que ^1 est le dernier index valide, tandis que ^0 est égal à Length et se situe juste après la fin.
using System;
int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine(numbers[^1]); // 50 (last)
Console.WriteLine(numbers[^2]); // 40L’index comme valeur de première classe
Un Index est une véritable valeur que vous pouvez stocker dans une variable, transmettre à des méthodes et réutiliser. Cela sépare la position de la collection.
using System;
int[] data = { 1, 2, 3, 4, 5 };
Index last = ^1;
Index secondLast = ^2;
Console.WriteLine(data[last]); // 5
Console.WriteLine(data[secondLast]); // 4IsFromEnd et Value
Chaque Index expose deux propriétés : Value (le décalage entier) et IsFromEnd (indiquant s’il a été créé avec ^).
using System;
Index fromStart = 2;
Index fromEnd = ^2;
Console.WriteLine(fromStart.Value + " " + fromStart.IsFromEnd); // 2 False
Console.WriteLine(fromEnd.Value + " " + fromEnd.IsFromEnd); // 2 TrueGetOffset détermine la position
Un index depuis la fin n’a de sens que lorsque vous connaissez la longueur de la collection. Index.GetOffset(length) le convertit en décalage concret commençant à zéro.
using System;
Index fromEnd = ^1;
int length = 5;
int offset = fromEnd.GetOffset(length);
Console.WriteLine(offset); // 4^0 se situe juste après la fin
Comme ^0 se résout en Length, l’utiliser pour un accès provoque une exception. Il ne sert que comme limite supérieure exclusive d’un intervalle, que vous découvrirez dans la leçon suivante.
using System;
int[] data = { 1, 2, 3 };
try {
Console.WriteLine(data[^0]); // out of range!
} catch (IndexOutOfRangeException) {
Console.WriteLine("^0 is past the end");
}L’index fonctionne sur de nombreuses collections
Tout type possédant un indexeur ainsi qu’une propriété Length ou Count (et la prise en charge appropriée) peut utiliser Index. Les tableaux, string et Span<T> fonctionnent directement.
using System;
string word = "Coddy";
Console.WriteLine(word[^1]); // y
Console.WriteLine(word[^5]); // CCalculer des index dynamiquement
Vous pouvez construire un Index à partir d’un entier obtenu à l’exécution en utilisant l’opérateur ^ sur une variable.
using System;
int[] data = { 5, 10, 15, 20 };
int n = 2;
Index idx = ^n; // ^ works on variables too
Console.WriteLine(data[idx]); // 15Index et int classique
Un int classique compte toujours depuis le début. Index ajoute la possibilité de compter depuis la fin tout en autorisant une conversion implicite depuis int, de sorte que le code existant continue de fonctionner.
using System;
Index a = 1; // implicit from int
Index b = ^1; // from end
Console.WriteLine(a.IsFromEnd); // False
Console.WriteLine(b.IsFromEnd); // TrueÉviter les erreurs de décalage d’une unité
Pour atteindre le dernier élément, il fallait autrefois écrire arr[arr.Length - 1]. Avec ^1, l’intention est explicite et aucun calcul ne peut être incorrect.
using System;
int[] scores = { 88, 92, 79, 95 };
Console.WriteLine(scores[scores.Length - 1]); // old way: 95
Console.WriteLine(scores[^1]); // new way: 95L’index dans du code réel
Voici une petite fonction utilitaire qui renvoie le dernier élément d’un tableau quelconque à l’aide de ^1, tout en gardant l’appel clair.
using System;
static T Last<T>(T[] items) => items[^1];
int[] nums = { 3, 6, 9, 12 };
Console.WriteLine(Last(nums)); // 12Vérification rapide
Évaluez votre compréhension du type Index et de l’opérateur ^.
Récapitulatif
Vous avez appris que System.Index représente une position qui peut être comptée depuis le début ou, avec l’opérateur ^, depuis la fin.
^1désigne le dernier élément ;^0est égal àLength(juste après la fin).IndexpossèdeValue,IsFromEndetGetOffset(length).- Il accepte une conversion implicite depuis
intet fonctionne avec les tableaux, les chaînes et les segments mémoire.
Questions Fréquemment Posées
La leçon « Le type Index et l’opérateur ^ » est-elle gratuite ?
Oui — le texte complet de « Le type Index et l’opérateur ^ » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Le type Index et l’opérateur ^ » ?
Référencez des éléments depuis la fin d’une collection. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C# Academy ?
Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Le type Index et l’opérateur ^ » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?
Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Le type Index et l’opérateur ^
- Le type Range et l’opérateur ..
- Intervalles avec des tableaux et des chaînes
- Types personnalisés prenant en charge les intervalles