public ArrayElementValueIterator(IArrayValue arrayValue)
 {
     this._arrayValue = arrayValue;
     this._array      = (IArrayInstance)arrayValue.Symbol;
     this._type       = (IArrayType)arrayValue.DataType;
     this._indexIter  = new ArrayIndexIterator(this._type);
 }
Exemple #2
0
        public IEnumerator <ISymbol> GetEnumerator()
        {
            IEnumerator <int[]> enumerator = new ArrayIndexIterator(this._arrayType).GetEnumerator();

            Label_PostSwitchInIterator :;
            if (enumerator.MoveNext())
            {
                int[]   currentIndex = enumerator.Current;
                ISymbol symbol       = this._symbolFactory.CreateArrayElement(currentIndex, this._arrayInstance, this._arrayType);
                yield return(symbol);

                goto Label_PostSwitchInIterator;
            }
            else
            {
                enumerator = null;
                if (this.IsOversampled)
                {
                    ISymbol symbol2 = ((ISymbolFactoryOversampled)this._symbolFactory).CreateOversamplingElement(this._arrayInstance);
                    yield return(symbol2);
                }
            }
        }