2024-01-05 12:00:00
Une très belle innovation de C# 12.0 est la syntaxe simplifiée pour l’initialisation des ensembles. Microsoft appelait à l’origine cette fonctionnalité du langage Collection Literals, mais maintenant appelée Collection Expressions.
Publicité
Dr. Holger Schwichtenberg est expert technologique en chef chez MAXIMAGO, qui propose un développement de logiciels innovant et basé sur l’expérience, y compris dans des domaines hautement critiques liés à la sécurité. Il est également à la tête du réseau d’experts www.IT-Visions.de, qui soutient de nombreuses moyennes et grandes entreprises avec des conseils et des formations dans le développement et l’exploitation de logiciels avec 43 experts renommés.
Avec cette nouvelle syntaxe, vous pouvez grandement unifier les formes d’initialisation auparavant très hétérogènes des ensembles d’objets à la manière de JavaScript, c’est-à-dire avec les valeurs entre crochets, séparées par des virgules :
Initialisation précédente | Maintenant aussi possible |
int[] a = nouvel entier[3] { 1, 2, 3 } ; | int[] une = [1,2,3]; |
Portée | Portée |
Tableau immuable | Tableau immuable |
Liste | Liste |
De l’Illinois | De l’Illinois |
IEnumerable | IEnumerable |
Cependant, un objet de type ReadOnlyArray est créé |
La syntaxe avec crochets est possible non seulement lors de l’initialisation initiale, mais également lors d’affectations ultérieures :
List sites1, sites2 = ["www.IT-Visions.de"], sites3;
sites1 = ["www.dotnetframework.de", "www.dotnet8.de",
"dotnet-lexikon.de", "www.dotnet-doktor.de"];
sites3 = []; // leere Liste
Utilisation de l’opérateur spread ..
Vous pouvez intégrer des ensembles dans d’autres ensembles dans le cadre de l’initialisation. L’opérateur spread garantit qu’une liste plate n’est pas imbriquée :
// Array aus den Elementen der Arrays erstellen mit Spread Operator
string[] allSitesAsArray =
[.. sites1, .. sites2, "www.dotnettraining.de", .. sites3];
// Liste aus den Elementen der Arrays erstellen mit Spread Operator
List allSitesAsList =
[.. sites1, .. sites2, "www.dotnettraining.de", .. sites3];
// Liste noch mal erweitern
allSitesAsList = [.. allSitesAsList, "powershell-schulungen.de"];
// Auflisten: 7 Sites sind nun in der Liste
foreach (var site in allSitesAsList)
{
Console.WriteLine(site);
}
Beaucoup de choses sont créées avec ces huit sites Web, car en plus des sept dans les variables sites1
, sites2
et sites3
Un autre site Web a été ajouté aux sites Web inclus.
Sortie du listing précédent
(Image : Capture d’écran / Holger Schwichtenberg)
Les expressions de collection ne sont actuellement pas possibles pour les objets de dictionnaire (à partir de C# 12.0). Avec ceux-ci, vous pouvez (comme avant C# 12.0) soit utiliser l’initialisation à l’aide d’accolades imbriquées, soit utiliser l’affectation nom-valeur entre les accolades via [Name] = Wert
complet:
// Initialisierung mit Add()
SortedDictionary dic0 = new();
dic0.Add(10, "www.dotnet-doktor.de");
dic0.Add(21, "www.dotnetframework.de");
dic0.Add(42, "www.dotnet8.de");
// Initialisierung mit geschweiften Klammern
SortedDictionary dic1 = new() {
{ 10, "www.dotnet-doktor.de" },
{ 21, "www.dotnetframework.de" },
{ 42, "www.dotnet8.de" }
};
// Initialisierung mit geschweiften und eckigen Klammern
// (schon vor C# 12.0 möglich)
SortedDictionary dic2 = new()
{
[10] = "www.dotnet-doktor.de",
[21] = "www.dotnetframework.de",
[42] = "www.dotnet8.de"
};
(moi)
#Nouveau #dans #.NET #Expressions #collection
1704515317