gpt4 book ai didi

c# - List.Clear() 在 C# 中是如何实现的?

转载 作者:IT王子 更新时间:2023-10-28 23:31:10 24 4
gpt4 key购买 nike

我假设它使用一个数组来实现 List。 List.Clear() 是如何实现的?它实际上是清理数组还是只是为这个列表创建一个新数组?

public class List {

private Array _array;

public void Clear1 () {
_array.length = 0;
}
public void Clear2 () {
_array = new Array();
}
}

最佳答案

像这样(使用 .NET Reflector):

public void Clear()
{
if (this._size > 0)
{
Array.Clear(this._items, 0, this._size);
this._size = 0;
}
this._version++;
}

如您所见,它只是清除了同一个数组。它可能假设如果您重用相同的列表,您可能希望用大致相同数量的数据重新填充它。如果要释放数组,则需要创建一个新的 List 实例。

关于c# - List.Clear() 在 C# 中是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5358129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com