Før collection initializers blev indført med C# 3.0, var det nødvendigt at initialisere static collections i static constructors (medmindre man gjorde det "dovent" ifm. et funktionskald). Hvis man selv giver en klasse en static constructor, vil C# kompileren fjerne beforefieldinit flaget fra klassen, hvilket i nogle tilfælde kan give dårligere performance. Med collection initializers kan man fylde data i en static collection inline og dermed beholde beforefieldinit:
static Dictionary<int, string>; someStaticCollection = new Dictionary<int, string>()
{
{ 42, "The answer" },
{ 90, "ne0sans new Nikon camera" }
};
IL'en viser, at C# kompileren putter beforefieldinit på klassen:
