Expression.NewArrayInit メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
1 次元配列の作成と要素の一覧からの初期化を表す NewArrayExpression を作成します。
オーバーロード
| 名前 | 説明 |
|---|---|
| NewArrayInit(Type, IEnumerable<Expression>) |
1 次元配列の作成と要素の一覧からの初期化を表す NewArrayExpression を作成します。 |
| NewArrayInit(Type, Expression[]) |
1 次元配列の作成と要素の一覧からの初期化を表す NewArrayExpression を作成します。 |
NewArrayInit(Type, IEnumerable<Expression>)
1 次元配列の作成と要素の一覧からの初期化を表す 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")>]
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
パラメーター
- initializers
- IEnumerable<Expression>
Expressions コレクションの設定に使用するExpression オブジェクトを含むIEnumerable<T>。
戻り値
NodeType プロパティが NewArrayInit と等しく、Expressions プロパティが指定した値に設定されているNewArrayExpression。
- 属性
例外
initializersの要素のType プロパティは、typeが表す型に割り当てられない型を表します。
例
次の例では、 NewArrayInit メソッドを使用して、文字列式のリストで初期化される 1 次元文字列配列の作成を表す式ツリーを作成する方法を示します。
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"}
注釈
initializersの各要素のType プロパティは、typeによって表される型に割り当て可能な型を表す必要があります(場合によっては引用符で囲まれた後)。
注
要素は、 type が Expressionされている場合にのみ引用符で囲まれます。 引用符は、要素が Quote ノードにラップされていることを意味します。 結果のノードは、Operand プロパティがinitializersの要素であるUnaryExpressionです。
結果のNewArrayExpressionのType プロパティは、ランクが 1 で要素型がtype配列型を表します。
適用対象
NewArrayInit(Type, Expression[])
1 次元配列の作成と要素の一覧からの初期化を表す 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Creating arrays at runtime requires dynamic code generation.")>]
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
パラメーター
- initializers
- Expression[]
Expressions コレクションの設定に使用するExpression オブジェクトの配列。
戻り値
NodeType プロパティが NewArrayInit と等しく、Expressions プロパティが指定した値に設定されているNewArrayExpression。
- 属性
例外
initializersの要素のType プロパティは、type型に割り当てられない型を表します。
例
次の例では、 NewArrayInit メソッドを使用して、文字列式のリストで初期化される 1 次元文字列配列の作成を表す式ツリーを作成する方法を示します。
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"}
注釈
initializersの各要素のType プロパティは、typeによって表される型に割り当て可能な型を表す必要があります(場合によっては引用符で囲まれた後)。
注
要素は、 type が Expressionされている場合にのみ引用符で囲まれます。 引用符は、要素が Quote ノードにラップされていることを意味します。 結果のノードは、Operand プロパティがinitializersの要素であるUnaryExpressionです。
結果のNewArrayExpressionのType プロパティは、ランクが 1 で要素型がtype配列型を表します。