Export (0) Print
Expand All

Expression.NewArrayInit Method (Type, IEnumerable<Expression>)

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)

public static NewArrayExpression NewArrayInit(
	Type type,
	IEnumerable<Expression> initializers
)

Parameters

type
Type: System.Type
A Type that represents the element type of the array.
initializers
Type: System.Collections.Generic.IEnumerable<Expression>
An IEnumerable<T> that contains 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 null.

-or-

An element of initializers is null.

InvalidOperationException

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

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.


List<System.Linq.Expressions.Expression> trees =
    new List<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.
System.Linq.Expressions.NewArrayExpression newArrayExpression =
    System.Linq.Expressions.Expression.NewArrayInit(typeof(string), trees);

// Output the string representation of the Expression.
outputBlock.Text += newArrayExpression.ToString() + "\n";

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


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2015 Microsoft