C# 在使用初始容量初始化的列表上调用'Clear()'
我有一个具有指定初始容量的列表:C# 在使用初始容量初始化的列表上调用'Clear()',c#,list,generic-list,C#,List,Generic List,我有一个具有指定初始容量的列表: private void Foo() { List<double> myList = new List<double>(1024); myList.Add(1.0); myList.Add(2.0); .... myList.Clear(); <-- what is the list's 'initial' capacity now? } private void Foo() { 列表my
private void Foo()
{
List<double> myList = new List<double>(1024);
myList.Add(1.0);
myList.Add(2.0);
....
myList.Clear(); <-- what is the list's 'initial' capacity now?
}
private void Foo()
{
列表myList=新列表(1024);
myList.Add(1.0);
myList.Add(2.0);
....
myList.Clear();根据以下命令:
容量保持不变。若要重置列表的容量,请调用TrimOverse方法或直接设置Capacity属性。减少容量会重新分配内存并复制列表中的所有元素。修剪空列表会将列表的容量设置为默认容量
当然,您只需设置一个断点并在调用Clear
前后检查属性值,就可以自己确认这一点
没有
Reset方法(除非您指的是某些扩展方法),但上面引用的文档表明您可以通过调用来重置容量。List myList=new List(1024);
Console.WriteLine(myList.Capacity);
myList.Add(1.0);
myList.Add(2.0);
Console.WriteLine(myList.Capacity);
myList.Clear();
Console.WriteLine(myList.Capacity);
容量保持不变。若要重置列表的容量,请调用TrimOverse方法或直接设置Capacity属性。减少容量会重新分配内存并复制列表中的所有元素。修剪空列表会将列表的容量设置为默认容量
请看这里:为什么不检查一下我的列表。容量?@Soner-你当然是对的。不知怎的,我忘记了容量。谢谢。
List<double> myList = new List<double>(1024);
Console.WriteLine(myList.Capacity);
myList.Add(1.0);
myList.Add(2.0);
Console.WriteLine(myList.Capacity);
myList.Clear();
Console.WriteLine(myList.Capacity);