集合初始化器與對象初始化器機制相似,差別在於作用於集合。它讓開發者能更簡潔地向集合添加元素。例如向 List<Person> 添加三個對象:
List<Person> people = new List<Person>();
people.Add(new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 });
people.Add(new Person { FirstName = "Bill", LastName = "Gates", Age = 50 });
people.Add(new Person { FirstName = "Susanne", LastName = "Guthrie", Age = 32 });
僅用對象初始化器即省去 12 行代碼。C# 3.0 更進一步支援集合初始化器語法:
List<Person> people = new List<Person> {
new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 },
new Person { FirstName = "Bill", LastName = "Gates", Age = 50 },
new Person { FirstName = "Susanne", LastName = "Guthrie", Age = 32 }
};
編譯器自動生成對應的 Add 調用,語義與展開寫法完全一致。開發者獲得更簡潔的語法,運行行為零變化,代碼更清晰易維護。