Простой класс для перебора (итератор) хэша типа [1][2][3] ... [32323]. Если нужно, что-то вывести по-порядку.


@CLASS
List


# <summary>
# Для перебора хэша.
# </summary>
@create[_hash]
#    Если передали в хэш, строим на основе него
    ^if(def $_hash){
        $self.hash[$_hash]
        $self.current[$self.hash.[1]]
    }{
#        Если нет, то создаем новый    
        $self.hash[^hash::create[]]
    }
    $self.index(1)
    
    
@hasNext[]
    ^if(def $self.hash.[$self.index]){
        $self.current[$hash.[$index]]
        ^self.index.inc[]
        $result(true)
    }{
        $self.index(1)
        $result(false)
    }


@addItem[item][nextIndex]
    $nextIndex(^self.hash._count[])
    ^nextIndex.inc[]

    $self.hash.[$nextIndex][$item]
    
    
    
    

Пример использования (где $values хэш):

$list[^List::create[$values]]
^while(^list.hasNext[]){
    $list.current <br/>
}

Вообще использовать массивы, как правило, не имеет смысла, то есть использовать только если сильно надо :-)

^list.getCurrent[] не стал использовать, т.к. нельзя сделать ^list.getCurrent[].nodeValue к примеру.