This article is currently in the process of being translated into French (~98% done).
Collection Initializers
Tout comme C# 3.0 offre une nouvelle façon d'initialiser des objets, une nouvelle syntaxe pour initialiser une liste avec un ensemble spécifique d'éléments ajoutés, a été incluse. Nous pouvons utiliser la classe "Car" du dernier chapitre :
class Car
{
public string Name { get; set; }
public Color Color { get; set; }
}
Si nous voulions créer une liste contenant un ensemble de voitures, nous devions faire quelque chose comme ça avec C# 2.0 :
Car car;
List<Car> cars = new List<Car>();
car = new Car();
car.Name = "Corvette";
car.Color = Color.Yellow;
cars.Add(car);
car = new Car();
car.Name = "Golf";
car.Color = Color.Blue;
cars.Add(car);
En utilisant des initialisateurs d'objets, nous pouvons faire un peu plus court :
List<Car> cars = new List<Car>();
cars.Add(new Car { Name = "Corvette", Color = Color.Yellow });
cars.Add(new Car { Name = "Golf", Color = Color.Blue});
Cela dit, ça peut être encore plus simple, lorsque combiné avec des initialiseurs de collections :
List<Car> cars = new List<Car>
{
new Car { Name = "Corvette", Color = Color.Yellow },
new Car { Name = "Golf", Color = Color.Blue}
};
Ou dans la version en une seule ligne, qui fait exactement la même chose :
List<Car> cars = new List<Car> { new Car { Name = "Corvette", Color = Color.Yellow }, new Car { Name = "Golf", Color = Color.Blue} };
10 lignes de code ont été réduites en une seule ligne, certes un peu longue, grâce aux initialiseurs d'objets et de collections.