C# List何时触发容量翻倍?合理设置容量的技术疑问
C# List扩容时机与容量设置问题
扩容触发时机:当尝试添加第101项时才会触发扩容。
List<T>的扩容逻辑是在执行Add操作前,检查当前元素数量(Count)是否等于容量(Capacity)。只有当两者相等时,才会先完成扩容(容量翻倍),再添加新元素。举个例子:容量为100的List,添加第100项时,Count从99变为100,刚好等于Capacity,这一步不会触发扩容;只有当你要添加第101项时,才会触发扩容,将容量提升至200。容量设置建议:如果已知List最多存放100项,将容量设为100即可避免扩容带来的性能开销。
当List存满100项时,Count等于Capacity,不会触发扩容逻辑;只要不添加第101项,就不会产生扩容相关的性能损耗。设置为101属于多余的内存占用,完全没必要。
内容的提问来源于stack exchange,提问作者Vic F
相关产品推荐
相关产品推荐

