Home » Dev » Static Object Initializer von List und Dictionary
Static Object Initializer von List und Dictionary
8. Mai 2013
div class=”articleAbstract”>
Die Nutzung eines Objekt-Initializer ist ein sehr übersichtlicher Mechanismus um Objekte nicht nur zu erzeugen, sondern im gleichen Zuge auch zu füllen. Mit nur einem Statement werden alle gewünschten Public-Properties eines Objektes initialisiert. Weniger bekannt ist, dass der Mechanismus sich hervorragend eignet, um auch List und Dictionary als Static Member mit Elementen zu füllen.
Ein Objekt wird per Objekt-Initializer gefüllt:
Person p = new Person { Name = "Matthias Malsy", Company = "SDX AG" };
Dabei spielt es keine Rolle, ob dies eine lokale Variable oder ein static Property einer Klasse ist.
class Whatever
{
static Person p = new Person { Name = "Matthias Malsy", Company = "SDX AG" };
...
}
Die Anwendung auf Listen nutze ich persönlich sehr gerne. Für eine lokale Variable eliminiert die Initialisierung diverse Add-aufrufe bzw. die Erzeugung eines (Zwischen-) Arrays.
class Whatever
{
static List<Person> p = new List<Person> {
new Person { Name = "Matthias Malsy", Company = "SDX AG" },
new Person { Name = "Bill Who", Company = "Microsoft" },
};
...
}
Die Anwendung auf Collections sieht man eher selten, spart aber einen Static-Constructor der sonst die Initialisierung übernommen hätte.
class Whatever
{
static Dictionary<string,Person> p = new Dictionary<string,Person> {
{"MMalsy", new Person { Name = "Matthias Malsy", Company = "SDX AG" } },
{"WBill", new Person { Name = "Bill Who", Company = "Microsoft" } },