Esempio n. 1
0
        public void IterateNext()
        {
            if (_traversal == null)
            {
                throw new InvalidOperationException("Traversal should be set before iterating");
            }
            _traversal.MoveNext();
            var result = _traversal.Current;

            switch (result)
            {
            case null:
                _result = null;
                return;

            case object[] arrayResult:
                _result = arrayResult;
                return;

            case IEnumerable enumerableResult:
                _result = enumerableResult.Cast <object>().ToArray();
                return;
            }
            throw new InvalidCastException($"Can not convert instance of {result.GetType()} to object[]");
        }
Esempio n. 2
0
        public void IterateNext()
        {
            if (_traversal == null)
            {
                throw new InvalidOperationException("Traversal should be set before iterating");
            }

            try
            {
                _traversal.MoveNext();
                var result = _traversal.Current;
                switch (result)
                {
                case null:
                    _result = null;
                    return;

                case object[] arrayResult:
                    _result = arrayResult;
                    return;

                case IEnumerable enumerableResult:
                    _result = enumerableResult.Cast <object>().ToArray();
                    return;
                }
            }
            catch (Exception ex)
            {
                _error = ex;
            }
        }
Esempio n. 3
0
        public void IterateToList()
        {
            if (_traversal == null)
            {
                throw new InvalidOperationException("Traversal should be set before iterating");
            }
            ITraversal t    = _traversal;
            var        list = new List <object>();

            while (t.MoveNext())
            {
                list.Add(t.Current);
            }
            _result = list.ToArray();
        }