0Pricing
C# Academy · Leçon

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,6

Mé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,5

Ajouter 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,40

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

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

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

Construire 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); // 6

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

Expansions 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)); // True

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

Une 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

  1. Syntaxe des expressions de collection
  2. L’élément de déploiement
  3. Déduction du type cible pour les collections
  4. Constructeurs de collections
← Retour à C# Academy