作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Delphi 是否提供了任何好方法来迭代 TCollection 中的 TCollectionItems?
也许,类似于......的东西
for mycollectionitem in mycollection.Items do
mycollectionitem.setWhatever();
但是这不能编译
或者真的没有什么比这更优雅的了:
for num := 1 to mycollection.Count do
mycollection.Items[num-1].setWhatever();
最佳答案
For..in
循环通过调用 GetEnumerator
及其返回的变量的方法来实现。 Items
属性不是一个对象,而是一个数组属性,它默默地映射到 getter/setter 对,因此它不能返回枚举器,但 TCollection
本身确实有GetEnumerator
方法。
因此:
for mycollectionitem in mycollection do
mycollectionitem.setWhatever();
但请注意,TCollection
不是泛型类,因此枚举器索引变量的类型将为 TCollectionItem
,而不是任何 ItemClass
正在与您合作。
关于delphi - for all/for every 循环遍历 Delphi TCollection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27030160/
我是一名优秀的程序员,十分优秀!