首页 > 后端开发 > C++ > 如何在不迭代的情况下对 IEnumerable 中的项目进行计数?

如何在不迭代的情况下对 IEnumerable 中的项目进行计数?

DDD
发布: 2024-12-27 10:11:16
原创
768 人浏览过

How Can I Count Items in an IEnumerable Without Iteration?

计算 IEnumerable 中的项目数没有迭代

使用序列时,通常需要在迭代之前确定元素的总数。然而,IEnumerable不提供无需迭代即可对项目进行计数的直接机制。

无需迭代即可进行计数

要实现无需迭代的项目计数,请考虑以下事项:

  • ICollection: 如果您的数据源实现ICollection,您可以直接访问其 Count 属性。 ICollection表示可以有效计数的集合。

示例

给定以下 Tables 属性:

private IEnumerable<string> Tables
{
    get
    {
        yield return "Foo";
        yield return "Bar";
    }
}
登录后复制

无需迭代,您可以使用 ICollection;计算项目数:

var count = (Tables as ICollection<string>).Count;
Console.WriteLine($"You'll process {count} tables");
登录后复制

注意:

  • IEnumerable;强调惰性求值,这意味着仅在请求时才检索元素。
  • ICollection;由于其高效的集合表示,支持直接计数。如果项目计数是关键性能要求,请选择此选项。

以上是如何在不迭代的情况下对 IEnumerable 中的项目进行计数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板