NewArrayInit Method (Type, Expression[])
Collapse the table of content
Expand the table of content

Expression.NewArrayInit Method (Type, Expression())

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Creates a NewArrayExpression that represents creating a one-dimensional array and initializing it from a list of elements.

Namespace:  System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

'Declaration
Public Shared Function NewArrayInit ( _
	type As Type, _
	ParamArray initializers As Expression() _
) As NewArrayExpression

Parameters

type
Type: System.Type
A Type that represents the element type of the array.
initializers
Type: System.Linq.Expressions.Expression ()
An array of Expression objects to use to populate the Expressions collection.

Return Value

Type: System.Linq.Expressions.NewArrayExpression
A NewArrayExpression that has the NodeType property equal to NewArrayInit and the Expressions property set to the specified value.

ExceptionCondition
ArgumentNullException

type or initializers is Nothing.

-or-

An element of initializers is Nothing.

InvalidOperationException

The Type property of an element of initializers represents a type that is not assignable to the type type.

The Type property of each element of initializers must represent a type that is assignable to the type represented by type, possibly after it is quoted.

NoteNote:

An element will be quoted only if type is Expression. Quoting means the element is wrapped in a Quote node. The resulting node is a UnaryExpression whose Operand property is the element of initializers.

The Type property of the resulting NewArrayExpression represents an array type whose rank is 1 and whose element type is type.

The following example demonstrates how to use the NewArrayInit method to create an expression tree that represents creating a one-dimensional string array that is initialized with a list of string expressions.


Dim trees As New System.Collections.Generic.List(Of System.Linq.Expressions.Expression) _
        (New System.Linq.Expressions.Expression() _
         {System.Linq.Expressions.Expression.Constant("oak"), _
          System.Linq.Expressions.Expression.Constant("fir"), _
          System.Linq.Expressions.Expression.Constant("spruce"), _
          System.Linq.Expressions.Expression.Constant("alder")})

' Create an expression tree that represents creating and  
' initializing a one-dimensional array of type string.
Dim newArrayExpression As System.Linq.Expressions.NewArrayExpression = _
    System.Linq.Expressions.Expression.NewArrayInit(Type.GetType("System.String"), trees)

' Output the string representation of the Expression.
outputBlock.Text &= newArrayExpression.ToString() & vbCrLf

' This code produces the following output:
'
' new [] {"oak", "fir", "spruce", "alder"}


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2017 Microsoft