gpt4 book ai didi

c# - arraylist 长度和字符串哈希码是否被内存?

转载 作者:行者123 更新时间:2023-11-30 21:09:48 26 4
gpt4 key购买 nike

有没有人碰巧知道,在 .NET(4.0,如果重要的话)中,数组的 Length 属性或 List<T> 的 Count 属性计算后存储,直到数组/列表更改?

我问是因为我正在处理的记录链接程序已经非常复杂了,如果可以的话,我宁愿不在上面添加另一个 O(n)。

按照类似的思路,实例化的 System.String 的哈希码是否已内存?通过调试器查看它,我可以看到 List<T>有一个私有(private)的 _size 成员,可能是 Count 获取其值的地方,但我看不到任何 int[] 或字符串表明它们将其存储在任何地方。

我可以看到大小与速度之间的权衡,但是谁能确定地告诉我是否有支持这些字段的字段?例如,由于在 C# 中,字符串是不可变的,所以第一次计算哈希码是否有意义 GetHashCode被调用,并存储它以供以后使用?

最佳答案

来自 http://msdn.microsoft.com/en-us/library/6sh2ey19(v=VS.100).aspx

The List class is the generic equivalent of the ArrayList class. It implements the IList generic interface using an array whose size is dynamically increased as required.

这表明,Length 属性在任何时间点都是已知的,不需要计算。

关于c# - arraylist 长度和字符串哈希码是否被内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8843623/

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