0Pricing
C# Academy · Leçon

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..3

L’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,30

Dé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,4

Intervalles 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,50

Intervalles 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,3

Range.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 2

Range.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,7

Construire 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,13

Vé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

  1. Le type Index et l’opérateur ^
  2. Le type Range et l’opérateur ..
  3. Intervalles avec des tableaux et des chaînes
  4. Types personnalisés prenant en charge les intervalles
← Retour à C# Academy