L’élément de déploiement
Combinez des collections avec l’opérateur de déploiement.
L’élément de déploiement 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.
L’élément d’expansion ..
Dans une expression de collection, l’élément d’expansion .. insère le contenu d’une autre collection. Il permet de combiner des séquences de manière déclarative.
using System;
int[] a = [1, 2, 3];
int[] b = [4, 5, 6];
int[] all = [..a, ..b];
Console.WriteLine(string.Join(",", all)); // 1,2,3,4,5,6Mélanger expansions et éléments individuels
Vous pouvez intercaler librement des éléments d’expansion et des valeurs individuelles, l’ordre étant conservé.
using System;
int[] middle = [2, 3, 4];
int[] result = [1, ..middle, 5];
Console.WriteLine(string.Join(",", result)); // 1,2,3,4,5Ajouter au début ou à la fin
Les expansions rendent triviales les opérations consistant à « ajouter au début » ou à « ajouter à la fin », en produisant une nouvelle collection au lieu de modifier l’originale.
using System;
int[] core = [10, 20, 30];
int[] withHead = [0, ..core];
int[] withTail = [..core, 40];
Console.WriteLine(string.Join(",", withHead)); // 0,10,20,30
Console.WriteLine(string.Join(",", withTail)); // 10,20,30,40Développer plusieurs sources
Vous pouvez développer un nombre quelconque de collections dans une seule. Cela concatène plusieurs listes au sein d’une même expression.
using System;
using System.Collections.Generic;
List<string> x = ["a", "b"];
List<string> y = ["c"];
List<string> z = ["d", "e"];
List<string> merged = [..x, ..y, ..z];
Console.WriteLine(string.Join(",", merged)); // a,b,c,d,eDévelopper différents types de collections
La source d’expansion peut être n’importe quel objet énumérable : un tableau dans une liste, une liste dans un tableau, et ainsi de suite. Le type cible détermine le résultat.
using System;
using System.Collections.Generic;
int[] arr = [1, 2];
List<int> list = [3, 4];
int[] combined = [..arr, ..list];
Console.WriteLine(string.Join(",", combined)); // 1,2,3,4Développer IEnumerable
Même les séquences différées issues de LINQ peuvent être développées ; elles sont énumérées lors de la construction de la nouvelle collection.
using System;
using System.Linq;
var evens = Enumerable.Range(1, 6).Where(n => n % 2 == 0);
int[] result = [0, ..evens];
Console.WriteLine(string.Join(",", result)); // 0,2,4,6Construire progressivement des collections
Les expansions sont idéales pour construire progressivement une collection sans appels impératifs à Add.
using System;
int[] baseline = [1, 2, 3];
int[] extra = [4, 5];
int[] full = [..baseline, ..extra, 6];
Console.WriteLine(full.Length); // 6L’ordre est important
La séquence obtenue suit l’ordre textuel des éléments et des expansions ; intervertir les expansions modifie donc le résultat.
using System;
int[] a = [1, 2];
int[] b = [3, 4];
Console.WriteLine(string.Join(",", [..a, ..b])); // 1,2,3,4
Console.WriteLine(string.Join(",", [..b, ..a])); // 3,4,1,2Expansions et Concat
Les expansions remplacent souvent Concat + ToArray. Elles sont plus claires à lire et permettent au compilateur de dimensionner efficacement le résultat.
using System;
using System.Linq;
int[] a = [1, 2];
int[] b = [3, 4];
// old
int[] oldWay = a.Concat(b).ToArray();
// new
int[] newWay = [..a, ..b];
Console.WriteLine(oldWay.SequenceEqual(newWay)); // TrueDévelopper dans des spans
Comme la cible peut être un span, vous pouvez combiner des données avec une éventuelle allocation sur la pile pour les chemins d’exécution sensibles aux performances.
using System;
ReadOnlySpan<int> head = [1, 2];
ReadOnlySpan<int> tail = [3, 4];
int[] joined = [..head, ..tail];
Console.WriteLine(string.Join(",", joined)); // 1,2,3,4Une fusion concrète
Nous fusionnons ici les paramètres par défaut et les remplacements dans une seule expression, en conservant les valeurs ultérieures après les valeurs par défaut.
using System;
string[] defaults = ["--verbose", "--color"];
string[] userArgs = ["--output=log.txt"];
string[] finalArgs = [..defaults, ..userArgs];
Console.WriteLine(string.Join(" ", finalArgs));Vérification rapide
Vérifiez votre compréhension de l’élément d’expansion.
Récapitulatif
Vous avez appris à utiliser l’élément d’expansion .. dans les expressions de collection.
[..a, ..b]concatène des collections.- Les expansions se mélangent aux éléments individuels et conservent l’ordre.
- Les sources peuvent être des tableaux, des listes, des spans ou tout objet
IEnumerable. - C’est une alternative plus claire à
Concat().ToArray().
Questions Fréquemment Posées
La leçon « L’élément de déploiement » est-elle gratuite ?
Oui — le texte complet de « L’élément de déploiement » 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 « L’élément de déploiement » ?
Combinez des collections avec l’opérateur de déploiement. 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 « L’élément de déploiement » ?
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
- Syntaxe des expressions de collection
- L’élément de déploiement
- Déduction du type cible pour les collections
- Constructeurs de collections