Interface
Iterable
Description
The Iterable interface allows objects to denote themselves as being able to be used with "For Each" loops and provides a way to create Iterators, which do the actual work.
Method descriptions
Iterable.Iterator
Iterator As Iterator
Returns an Iterator that can be used with For Each...Next loops.
Classes that implement Iterable, such as Dictionary, can be used with For..Each loops:
Var dict As New Dictionary dict.Value("First Key") = "First Value" dict.Value("Second Key") = "Second Value" For Each entry As DictionaryEntry In dict TextArea1.Text = TextArea1.Text + " " + entry.Key + " " + entry.Value NextNote that if you change an Iterable while iterating over it using For Each...Next, an exception is raised. If you find you need to iterate and change the data, you can add a method to get all the keys into an array and then iterate through the array to access the values. A method could be something like this:
Function EagerlyEvaluateIterable(obj As Iterable) As Variant() Var results() As Variant For Each item As Variant In obj results.Add(item) Next Return results End FunctionNow you can call the method to get an array where you can then modify the contents. For example. this would let you iterate and modify a Dictionary:
For Each entry As DictionaryEntry In EagerlyEvaluateIterable(d) ' Stuff that can mutate the dictionary NextYou can also use FolderItem.Children to loop through the files in a folder:
Var docs As FolderItem docs = Special.Folder.Documents Var files() As String For Each f As FolderItem In docs.Children files.Add(f.Name) Next
Compatibility
Project Types |
All |
Operating Systems |
All |
See also
Iterator interface, DatabaseRow, Dictionary, RowSet, Set