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.
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.NewArrayExpressionA NewArrayExpression that has the NodeType property equal to NewArrayInit and the Expressions property set to the specified value.
| Exception | Condition |
|---|---|
| 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.
Note: |
|---|
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"}
Note: