System.Management.Pash.Implementation.ExecutionVisitor.VisitArrayExpression C# (CSharp) Method

VisitArrayExpression() public method

public VisitArrayExpression ( System.Management.Automation.Language.ArrayExpressionAst arrayExpressionAst ) : AstVisitAction
arrayExpressionAst System.Management.Automation.Language.ArrayExpressionAst
return AstVisitAction
        public override AstVisitAction VisitArrayExpression(ArrayExpressionAst arrayExpressionAst)
        {
            List<object> elements = new List<object>();
            var numStatements = arrayExpressionAst.SubExpression.Statements.Count;
            foreach (var stmt in arrayExpressionAst.SubExpression.Statements)
            {
                var result = EvaluateAst(stmt, false);
                // expand if only one element and it is enumerable
                var enumerator = LanguagePrimitives.GetEnumerator(result);
                if (numStatements > 1 || enumerator == null)
                {
                    elements.Add(result);
                }
                else
                {
                    while (enumerator.MoveNext())
                    {
                        elements.Add(enumerator.Current);
                    }
                }
            }

            this._pipelineCommandRuntime.WriteObject(elements.ToArray());

            return AstVisitAction.SkipChildren;
        }
ExecutionVisitor