gpt4 book ai didi

delphi - for all/for every 循环遍历 Delphi TCollection?

转载 作者:行者123 更新时间:2023-12-03 15:50:00 28 4
gpt4 key购买 nike

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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com