c# - list.count 是在物理上遍历列表来计算它,还是保留一个指针

标签 c# .net vb.net performance memory-management

我正在遍历一个大的对象列表来对列表中的所述对象做一些事情。

在我的迭代过程中,我会根据特定条件从列表中删除一些对象。

完成所有操作后,我需要根据列表中的对象数量更新 UI。 (T 列表)。

问题:

When I call list.count, does .net actually iterate through the list to count it, or does it store the count as a property/variable?

如果 .net 在物理上重复遍历列表,我也可以在自己遍历列表时保留一个计数器,从而节省开销?

谢谢

最佳答案

它只是保留一个内部整数来跟踪项目的数量。所以没有迭代。 文档说检索 Count 是一个 O(1) 操作:

http://msdn.microsoft.com/en-us/library/27b47ht3%28v=vs.110%29.aspx

你可以自己看看:

http://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs

关于c# - list.count 是在物理上遍历列表来计算它,还是保留一个指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517351/

相关文章:

c# - 现有图形转换为位图

c# - 将数据从 DataTable 传输到 Access 数据库时出现 Insert INTO 错误

c# - 如何从 azure OAuth 2.0 token (v2) 端点获取/生成访问 token ?

c# - 如何快速判断列表是否包含列表?

vb.net - 列表框的变量?

vb.net - 为什么使用 TryCast 而不是 DirectCast?

c# - 如何在 UserControl 中创建部分客户区?

c# - 在我的母版页中,只有当用户是管理员时才想输出 HTML

c# - 我怎样才能加快这个循环?是否有一次替换多个术语的类?

c# - .NET 程序集的签名