Le type Range et l’opérateur ..
Extrayez des tranches avec des expressions d’intervalle.
Le type Range et l’opérateur .. est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 2 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 Range
System.Range décrit une portion de séquence à l’aide d’un début et d’une fin de type Index. Il s’utilise parfaitement avec l’opérateur d’intervalle .. pour exprimer des sous-séquences.
using System;
Range r = 1..3;
Console.WriteLine(r.Start + ".." + r.End); // 1..3L’opérateur .. (intervalle)
L’opérateur d’intervalle a..b construit un Range allant de l’index a (inclus) à l’index b (exclus). Ainsi, 1..3 couvre les positions 1 et 2.
using System;
int[] data = { 10, 20, 30, 40, 50 };
int[] slice = data[1..3];
Console.WriteLine(string.Join(",", slice)); // 20,30Début inclusif, fin exclusive
La fin exclusive reprend le fonctionnement des boucles for : le nombre d’éléments est égal à end - start. L’intervalle 2..5 produit trois éléments.
using System;
int[] data = { 0, 1, 2, 3, 4, 5, 6 };
int[] slice = data[2..5];
Console.WriteLine(slice.Length); // 3
Console.WriteLine(string.Join(",", slice)); // 2,3,4Intervalles ouverts
Vous pouvez omettre l’une ou l’autre limite. ..3 signifie « du début jusqu’à 3 » et 2.. signifie « de 2 jusqu’à la fin ». .. seul copie toute la séquence.
using System;
int[] d = { 10, 20, 30, 40, 50 };
Console.WriteLine(string.Join(",", d[..3])); // 10,20,30
Console.WriteLine(string.Join(",", d[2..])); // 30,40,50
Console.WriteLine(string.Join(",", d[..])); // 10,20,30,40,50Intervalles avec des index depuis la fin
Combinez .. avec ^ pour extraire une portion relative à la fin. ^2.. signifie « les deux derniers éléments ».
using System;
int[] d = { 1, 2, 3, 4, 5 };
Console.WriteLine(string.Join(",", d[^2..])); // 4,5
Console.WriteLine(string.Join(",", d[..^1])); // 1,2,3,4 (drop last)Range comme valeur stockée
Un Range est une valeur que vous pouvez nommer et réutiliser avec différentes collections suivant la même convention de longueur.
using System;
Range middle = 1..^1; // drop first and last
int[] a = { 0, 1, 2, 3, 4 };
Console.WriteLine(string.Join(",", a[middle])); // 1,2,3Range.GetOffsetAndLength
Pour résoudre un intervalle en fonction d’une longueur concrète, appelez GetOffsetAndLength(length). La méthode renvoie le décalage de début et la longueur de la portion, en gérant pour vous les index depuis la fin.
using System;
Range r = ^3..^1;
var (offset, length) = r.GetOffsetAndLength(5);
Console.WriteLine(offset + " " + length); // 2 2Range.All
Le membre statique Range.All est équivalent à .. et sélectionne toute la séquence. Il est pratique lorsque vous transmettez des intervalles comme arguments.
using System;
Range whole = Range.All;
int[] d = { 9, 8, 7 };
Console.WriteLine(string.Join(",", d[whole])); // 9,8,7Construire un Range explicitement
En plus de l’opérateur, vous pouvez appeler le constructeur ou les méthodes de fabrique Range.StartAt et Range.EndAt pour plus de clarté.
using System;
Range a = new Range(1, 3);
Range b = Range.StartAt(2);
Range c = Range.EndAt(2);
Console.WriteLine(a + " | " + b + " | " + c);Intervalles vides et invalides
Un intervalle dont le début est égal à la fin produit une portion vide. Un intervalle dont le début se trouve après la fin, une fois résolu, provoque une exception au moment de l’extraction.
using System;
int[] d = { 1, 2, 3, 4 };
Console.WriteLine(d[2..2].Length); // 0 (empty)
try { var _ = d[3..1]; }
catch (ArgumentOutOfRangeException) { Console.WriteLine("invalid range"); }Tout mettre en pratique
Les intervalles rendent le traitement du texte et des tableaux concis. Ici, nous extrayons une portion située au milieu d’un tableau sans aucun calcul d’index.
using System;
int[] readings = { 5, 7, 9, 11, 13, 15 };
int[] window = readings[1..^1];
Console.WriteLine(string.Join(",", window)); // 7,9,11,13Vérification rapide
Assurez-vous de comprendre la sémantique de l’opérateur d’intervalle.
Récapitulatif
Vous avez appris que System.Range décrit une portion à l’aide de l’opérateur ...
- Le début est inclusif et la fin exclusive : nombre = fin - début.
- Les limites sont facultatives :
..3,2..,... ..se combine avec^pour extraire une portion depuis la fin.GetOffsetAndLength(length)résout un intervalle en nombres concrets.
Questions Fréquemment Posées
La leçon « Le type Range et l’opérateur .. » est-elle gratuite ?
Oui — le texte complet de « Le type Range 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 Range et l’opérateur .. » ?
Extrayez des tranches avec des expressions d’intervalle. 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 2 sur 4.
Combien de temps prend la leçon « Le type Range 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