Expression.NewArrayInit 方法

定义

创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression

重载

NewArrayInit(Type, IEnumerable<Expression>)

创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression

NewArrayInit(Type, Expression[])

创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression

NewArrayInit(Type, IEnumerable<Expression>)

Source:
NewArrayExpression.cs
Source:
NewArrayExpression.cs
Source:
NewArrayExpression.cs

创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression

public:
 static System::Linq::Expressions::NewArrayExpression ^ NewArrayInit(Type ^ type, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.NewArrayExpression NewArrayInit (Type type, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> initializers);
static member NewArrayInit : Type * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.NewArrayExpression
Public Shared Function NewArrayInit (type As Type, initializers As IEnumerable(Of Expression)) As NewArrayExpression

参数

type
Type

一个表示数组的元素类型的 Type

initializers
IEnumerable<Expression>

一个 IEnumerable<T>,包含用来填充 Expression 集合的 Expressions 对象。

返回

一个 NewArrayExpression,其 NodeType 属性等于 NewArrayInit,并且其 Expressions 属性设置为指定值。

例外

typeinitializersnull

- 或 -

initializers 的元素为 null

initializers 的元素的 Type 属性表示不能赋给 type 所表示的类型的类型。

示例

以下示例演示如何使用 NewArrayInit 方法创建表达式树,该树表示创建使用字符串表达式列表初始化的一维字符串数组。

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.
Console.WriteLine(newArrayExpression.ToString());

// This code produces the following output:
//
// new [] {"oak", "fir", "spruce", "alder"}
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.
Console.WriteLine(newArrayExpression.ToString())

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

注解

Type每个 元素initializers的 属性必须表示一个类型,该类型可赋给 所type表示的类型,可能在它被带引号后。

注意

仅当 元素 为 Expressiontype,才会引用元素。 引用表示元素包装在节点中 Quote 。 生成的节点是 , UnaryExpressionOperand 属性是 的 initializers元素。

Type生成的 NewArrayExpression 的 属性表示其秩为 1 且元素类型为 type的数组类型。

适用于

NewArrayInit(Type, Expression[])

Source:
NewArrayExpression.cs
Source:
NewArrayExpression.cs
Source:
NewArrayExpression.cs

创建一个表示创建一维数组并使用元素列表初始化该数组的 NewArrayExpression

public:
 static System::Linq::Expressions::NewArrayExpression ^ NewArrayInit(Type ^ type, ... cli::array <System::Linq::Expressions::Expression ^> ^ initializers);
public static System.Linq.Expressions.NewArrayExpression NewArrayInit (Type type, params System.Linq.Expressions.Expression[] initializers);
static member NewArrayInit : Type * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.NewArrayExpression
Public Shared Function NewArrayInit (type As Type, ParamArray initializers As Expression()) As NewArrayExpression

参数

type
Type

一个表示数组的元素类型的 Type

initializers
Expression[]

用于填充 Expression 集合的 Expressions 对象的数组。

返回

一个 NewArrayExpression,其 NodeType 属性等于 NewArrayInit,并且其 Expressions 属性设置为指定值。

例外

typeinitializersnull

- 或 -

initializers 的元素为 null

initializers 的元素的 Type 属性表示不能赋给类型 type 的类型。

示例

以下示例演示如何使用 NewArrayInit 方法创建表达式树,该树表示创建使用字符串表达式列表初始化的一维字符串数组。

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.
Console.WriteLine(newArrayExpression.ToString());

// This code produces the following output:
//
// new [] {"oak", "fir", "spruce", "alder"}
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.
Console.WriteLine(newArrayExpression.ToString())

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

注解

Type每个 元素initializers的 属性必须表示一个类型,该类型可赋给 所type表示的类型,可能在它被带引号后。

注意

仅当 元素 为 Expressiontype,才会引用元素。 引用表示元素包装在节点中 Quote 。 生成的节点是 , UnaryExpressionOperand 属性是 的 initializers元素。

Type生成的 NewArrayExpression 的 属性表示其秩为 1 且元素类型为 type的数组类型。

适用于