首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储在Bucket list中的项数

存储在Bucket list中的项数
EN

Stack Overflow用户
提问于 2009-04-23 08:57:25
回答 3查看 907关注 0票数 0

我想知道如何获得存储在TBucketList中的项目数量。据我所知,只有存储桶的数量和存储桶数组可用,所以我能想到的就是

代码语言:javascript
复制
Count := 0;
for I := 0 to BucketList.BucketCount - 1 do
  Inc (Count, BucketList.Buckets [I].Count);

这确实有效,但对我来说似乎很奇怪,我必须遍历所有存储桶才能找到存储的项的数量-这可能是经常需要的东西。

我是不是错过了另一个可能性?或者,为什么这个容器类不像其他容器那样提供Count成员?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-23 09:09:33

库永远不会完整。但是你可以扩展它们。

如果你经常需要这个值,你可以为此编写一个类帮助器。

代码语言:javascript
复制
TBucketListHelper = class helper for TBucketList
  function GetCount: Integer;
end;

function TBucketListHelper.GetCount: Integer;
var
  i : Integer;
begin
  Result := 0;
  for I := 0 to BucketCount - 1 do
    Inc (Result, Buckets [I].Count);
end;

您现在可以使用:

代码语言:javascript
复制
BucketList.GetCount

如果TBucketListHelper在作用域内。

票数 4
EN

Stack Overflow用户

发布于 2009-04-23 09:13:45

如果不保持计数器与内容同步,就没有其他解决方案。

它基本上是一个集合的集合。

票数 2
EN

Stack Overflow用户

发布于 2009-04-23 19:01:57

由于您使用的是自己的派生类,因此只需在上递增和递减计数器,添加并删除即可。为了以防万一,您可以包含循环方法作为双重检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/780854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档