Jes*_*own 3 delphi loops tcollection
Delphi是否提供了在TCollection中迭代TCollectionItems的好方法?
也许,某些事情......
for mycollectionitem in mycollection.Items do
mycollectionitem.setWhatever();
Run Code Online (Sandbox Code Playgroud)
但这不会编译
或者我真的没有什么比这更优雅了:
for num := 1 to mycollection.Count do
mycollection.Items[num-1].setWhatever();
Run Code Online (Sandbox Code Playgroud)
For..in循环实现为GetEnumerator对它返回的变量的调用和方法.该Items属性不是一个对象,而是一个静默映射到getter/setter对的数组属性,因此它不能返回一个枚举器,但TCollection它本身确实有一个GetEnumerator方法.
从而:
for mycollectionitem in mycollection do
mycollectionitem.setWhatever();
Run Code Online (Sandbox Code Playgroud)
但请注意,这TCollection不是泛型类,因此枚举器索引变量的类型将是TCollectionItem,而不是ItemClass您正在使用的任何类型.
| 归档时间: |
|
| 查看次数: |
2852 次 |
| 最近记录: |