Contributors: 2 Monday, April 24, 2017
Licensed under: CC-BY-SA
Not affiliated with Stack Overflow
Rip Tutorial:
Roadmap: roadmap

Collection initializers


Initialize a collection type with values:

var stringList = new List<string>

Collection initializers are syntactic sugar for Add() calls. Above code is equivalent to:

var temp = new List<string>();
var stringList = temp;

Note that the intialization is done atomically using a temporary variable, to avoid race conditions.

For types that offer multiple parameters in their Add() method, enclose the comma-separated arguments in curly braces:

var numberDictionary = new Dictionary<int, string>
    { 1, "One" },
    { 2, "Two" },

This is equivalent to:

var temp = new Dictionary<int, string>();
temp.Add(1, "One");
temp.Add(2, "Two");
var numberDictionarynumberDictionary = temp;