C#中设置Capacity属性
时间: 2024-03-23 17:42:31 浏览: 57
在 C# 中,可以使用 Capacity 属性来获取或设置 List<T> 的容量。容量是 List<T> 内部用来存储元素的数组的长度,而 Count 属性是 List<T> 中实际存储的元素个数。当 Count 属性增加到容量时,List<T> 会自动分配一个更大的数组来存储元素。具体实现方式如下:
```csharp
List<int> numbers = new List<int>();
Console.WriteLine(numbers.Capacity); // 输出 0
numbers.Capacity = 10;
Console.WriteLine(numbers.Capacity); // 输出 10
```
在这个例子中,我们首先创建了一个空的 List<int> 对象 numbers,并使用 Capacity 属性输出了它的容量。然后我们将 numbers 的容量设置为 10,并再次使用 Capacity 属性输出了它的容量。
需要注意的是,将 List<T> 的 Capacity 属性设置为一个更大的值会分配一个更大的数组来存储元素,而将 Capacity 属性设置为一个更小的值则会截断 List<T>,丢弃多余的元素。例如:
```csharp
List<int> numbers = new List<int>{1, 2, 3, 4, 5};
Console.WriteLine(numbers.Capacity); // 输出 8
Console.WriteLine(string.Join(",", numbers)); // 输出 "1,2,3,4,5"
numbers.Capacity = 3;
Console.WriteLine(numbers.Capacity); // 输出 3
Console.WriteLine(string.Join(",", numbers)); // 输出 "1,2,3"
```
在这个例子中,我们首先创建了一个包含 5 个元素的 List<int> 对象 numbers,并使用 Capacity 属性输出了它的容量和元素。然后我们将 numbers 的容量设置为 3,此时 List<T> 被截断,只保留前三个元素,后面的元素被自动清空。最后我们再次使用 Capacity 属性输出了它的容量和元素。
阅读全文