C#中的集合初始化器是一种简洁的语法,允许在声明集合的同时初始化其元素。这种语法特别适用于初始化实现了IEnumerable
接口并具有Add
方法的集合类型,如List<T>
、Dictionary<TKey, TValue>
等。
集合初始化器的基本用法
集合初始化器的基本语法如下:
csharp
var collection = new CollectionType<T> {
element1,
element2,
...
elementN
};
或者,对于需要指定键和值的集合(如字典),可以使用以下语法:
csharp
var dictionary = new Dictionary<TKey, TValue> {
{ key1, value1 },
{ key2, value2 },
...
{ keyN, valueN }
};
使用集合初始化器初始化集合的示例
- 初始化List
csharp
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
这段代码创建了一个List<int>
对象,并使用集合初始化器初始化了五个元素。
- 初始化Dictionary
csharp
Dictionary<string, int> ages = new Dictionary<string, int> {
{ "Alice", 30 },
{ "Bob", 25 },
{ "Charlie", 35 }
};
这段代码创建了一个Dictionary<string, int>
对象,并使用集合初始化器初始化了三个键值对。
- 使用对象初始化器初始化集合中的对象
当集合的元素是对象时,可以使用对象初始化器来初始化这些对象。例如:
csharp
List<Person> people = new List<Person> {
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 },
new Person { Name = "Charlie", Age = 35 }
};
这段代码假设有一个Person
类,具有Name
和Age
属性。它创建了一个List<Person>
对象,并使用集合初始化器和对象初始化器初始化了三个Person
对象。
集合初始化器的优势
- 简洁性 :集合初始化器提供了一种简洁的语法来初始化集合,避免了在代码中显式调用
Add
方法。 - 可读性:使用集合初始化器可以使代码更加易读,特别是当需要初始化大量元素时。
- 灵活性:集合初始化器可以与对象初始化器结合使用,允许在初始化集合的同时初始化集合中的对象。