Iterazione con enumeratore

I tipi .Net che espongono un'interfaccia IEnumerable consentono un iterazione manuale. Occorre estrarre un enumeratore dalla collection e poi utilizzare il metodo MoveNext

Esempio 180. Esempio Iterazione manuale [lua]

local List, err = asm1:importType("System.Collections.Generic.List`1[System.String]") -- MIND THE GAP! This is a generic --> special syntax!!  System.Collections.Generic.List‘1[[System.Int32]]    
local mylist = List({"pippo", "pluto", "paperino"})
 
local en = mylist.GetEnumerator()
while en.MoveNext() do  
   alert(en.Current)
end
local Dictionary, err = asm1:importType("System.Collections.Generic.Dictionary`2[[System.String],[System.String]]") -- MIND THE GAP! This is a generic --> special syntax!!  System.Collections.Generic.List‘1[[System.Int32]]    
local mydict = Dictionary()
mydict.Add("key1", "pippo");
mydict.Add("key2", "pluto");
mydict.Add("key3", "paperino");
local en = mydict.GetEnumerator()
while en.MoveNext() do    
  local elem = en.Current
  alert(elem.Key, elem.Value)    
end