Delphi提供了在TCollectionItems中迭代TCollection的好方法吗?
某种东西,也许,沿着.
for mycollectionitem in mycollection.Items do
mycollectionitem.setWhatever();不过,这并不能编译
或者说,没有比这更优雅的事情了吗?
for num := 1 to mycollection.Count do
mycollection.Items[num-1].setWhatever();发布于 2014-11-20 01:27:39
For..in循环被实现为对GetEnumerator和它返回的变量上的方法的调用。Items属性不是一个对象,而是一个数组属性,它静默地映射到getter/setter对,所以它不能返回枚举数,但是TCollection本身有一个GetEnumerator方法。
因此:
for mycollectionitem in mycollection do
mycollectionitem.setWhatever();但是,请注意,TCollection不是一个泛型类,所以枚举器索引变量的类型将是TCollectionItem,而不是您正在使用的任何ItemClass。
https://stackoverflow.com/questions/27030160
复制相似问题