Expression.ArrayIndex メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
配列の添字演算子の適用を表す Expression を作成します。
オーバーロード
ArrayIndex(Expression, Expression[]) |
多次元配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。 |
ArrayIndex(Expression, IEnumerable<Expression>) |
ランクが 1 より大きい配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。 |
ArrayIndex(Expression, Expression) |
ランク 1 の配列への配列の添字演算子の適用を表す BinaryExpression を作成します。 |
ArrayIndex(Expression, Expression[])
多次元配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ ArrayIndex(System::Linq::Expressions::Expression ^ array, ... cli::array <System::Linq::Expressions::Expression ^> ^ indexes);
public static System.Linq.Expressions.MethodCallExpression ArrayIndex (System.Linq.Expressions.Expression array, params System.Linq.Expressions.Expression[] indexes);
static member ArrayIndex : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function ArrayIndex (array As Expression, ParamArray indexes As Expression()) As MethodCallExpression
パラメーター
- array
- Expression
Expression のインスタンスの配列 (配列のインデックス操作のインデックス)。
- indexes
- Expression[]
Expression コレクションへの読み込みに使用する Arguments オブジェクトの配列。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Arguments。
例外
array
または indexes
が null
です。
array
.Type は配列型を表しません。
- または -
array
.Type のランクは、indexes
の要素の数と一致しません。
- または -
例
次の例では、 メソッドを ArrayIndex(Expression, Expression[]) 使用して、2 次元配列へのインデックス作成を表す を作成 MethodCallExpression する方法を示します。
string[,] gradeArray =
{ {"chemistry", "history", "mathematics"}, {"78", "61", "82"} };
System.Linq.Expressions.Expression arrayExpression =
System.Linq.Expressions.Expression.Constant(gradeArray);
// Create a MethodCallExpression that represents indexing
// into the two-dimensional array 'gradeArray' at (0, 2).
// Executing the expression would return "mathematics".
System.Linq.Expressions.MethodCallExpression methodCallExpression =
System.Linq.Expressions.Expression.ArrayIndex(
arrayExpression,
System.Linq.Expressions.Expression.Constant(0),
System.Linq.Expressions.Expression.Constant(2));
Console.WriteLine(methodCallExpression.ToString());
// This code produces the following output:
//
// value(System.String[,]).Get(0, 2)
Dim gradeArray(,) As String = _
{{"chemistry", "history", "mathematics"}, {"78", "61", "82"}}
Dim arrayExpression As System.Linq.Expressions.Expression = _
System.Linq.Expressions.Expression.Constant(gradeArray)
' Create a MethodCallExpression that represents indexing
' into the two-dimensional array 'gradeArray' at (0, 2).
' Executing the expression would return "mathematics".
Dim methodCallExpression As System.Linq.Expressions.MethodCallExpression = _
System.Linq.Expressions.Expression.ArrayIndex( _
arrayExpression, _
System.Linq.Expressions.Expression.Constant(0), _
System.Linq.Expressions.Expression.Constant(2))
Console.WriteLine(methodCallExpression.ToString())
' This code produces the following output:
'
' value(System.String[,]).Get(0, 2)
注釈
の indexes
各要素は Type と Int32等しい必要があります。 の array
プロパティはType、ランクが 内indexes
の要素の数と一致する配列型を表す必要があります。
のランクの array
場合。型は 1 で、このメソッドは を BinaryExpression返します。 プロパティは Left に array
設定され、 Right プロパティは の indexes
単一の要素に設定されます。 の BinaryExpression プロパティはType、 の要素型array
を表します。型。
のランクの array
場合。型が複数の場合、このメソッドは を MethodCallExpression返します。 プロパティはMethod、 の プロパティarray
で表される型のパブリック インスタンス メソッドGet
を記述する にType設定MethodInfoされます。
適用対象
ArrayIndex(Expression, IEnumerable<Expression>)
ランクが 1 より大きい配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。
public:
static System::Linq::Expressions::MethodCallExpression ^ ArrayIndex(System::Linq::Expressions::Expression ^ array, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ indexes);
public static System.Linq.Expressions.MethodCallExpression ArrayIndex (System.Linq.Expressions.Expression array, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> indexes);
static member ArrayIndex : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function ArrayIndex (array As Expression, indexes As IEnumerable(Of Expression)) As MethodCallExpression
パラメーター
- array
- Expression
Expression プロパティを等しく設定する Object。
- indexes
- IEnumerable<Expression>
IEnumerable<T> コレクションへの読み込みに使用する Expression オブジェクトを含む Arguments。
戻り値
MethodCallExpression と等しい NodeType プロパティと、指定した値に設定された Call プロパティおよび Object プロパティを含む Arguments。
例外
array
または indexes
が null
です。
array
.Type は配列型を表しません。
- または -
array
.Type のランクは、indexes
の要素の数と一致しません。
- または -
例
次の例では、 メソッドを ArrayIndex(Expression, Expression[]) 使用して、2 次元配列へのインデックス作成を表す を作成 MethodCallExpression する方法を示します。
string[,] gradeArray =
{ {"chemistry", "history", "mathematics"}, {"78", "61", "82"} };
System.Linq.Expressions.Expression arrayExpression =
System.Linq.Expressions.Expression.Constant(gradeArray);
// Create a MethodCallExpression that represents indexing
// into the two-dimensional array 'gradeArray' at (0, 2).
// Executing the expression would return "mathematics".
System.Linq.Expressions.MethodCallExpression methodCallExpression =
System.Linq.Expressions.Expression.ArrayIndex(
arrayExpression,
System.Linq.Expressions.Expression.Constant(0),
System.Linq.Expressions.Expression.Constant(2));
Console.WriteLine(methodCallExpression.ToString());
// This code produces the following output:
//
// value(System.String[,]).Get(0, 2)
Dim gradeArray(,) As String = _
{{"chemistry", "history", "mathematics"}, {"78", "61", "82"}}
Dim arrayExpression As System.Linq.Expressions.Expression = _
System.Linq.Expressions.Expression.Constant(gradeArray)
' Create a MethodCallExpression that represents indexing
' into the two-dimensional array 'gradeArray' at (0, 2).
' Executing the expression would return "mathematics".
Dim methodCallExpression As System.Linq.Expressions.MethodCallExpression = _
System.Linq.Expressions.Expression.ArrayIndex( _
arrayExpression, _
System.Linq.Expressions.Expression.Constant(0), _
System.Linq.Expressions.Expression.Constant(2))
Console.WriteLine(methodCallExpression.ToString())
' This code produces the following output:
'
' value(System.String[,]).Get(0, 2)
注釈
の indexes
各要素は Type と Int32等しい必要があります。 の array
プロパティはType、ランクが 内indexes
の要素の数と一致する配列型を表す必要があります。
のランクの array
場合。型は 1 で、このメソッドは を BinaryExpression返します。 プロパティは Left に array
設定され、 Right プロパティは の indexes
単一の要素に設定されます。 の BinaryExpression プロパティはType、 の要素型array
を表します。型。
のランクの array
場合。型が複数の場合、このメソッドは を MethodCallExpression返します。 プロパティはMethod、 の プロパティarray
で表される型のパブリック インスタンス メソッドGet
を記述する にType設定MethodInfoされます。
適用対象
ArrayIndex(Expression, Expression)
ランク 1 の配列への配列の添字演算子の適用を表す BinaryExpression を作成します。
public:
static System::Linq::Expressions::BinaryExpression ^ ArrayIndex(System::Linq::Expressions::Expression ^ array, System::Linq::Expressions::Expression ^ index);
public static System.Linq.Expressions.BinaryExpression ArrayIndex (System.Linq.Expressions.Expression array, System.Linq.Expressions.Expression index);
static member ArrayIndex : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function ArrayIndex (array As Expression, index As Expression) As BinaryExpression
パラメーター
- array
- Expression
Expression プロパティを等しく設定する Left。
- index
- Expression
Expression プロパティを等しく設定する Right。
戻り値
BinaryExpression と等しい NodeType プロパティと、指定した値に設定された ArrayIndex プロパティおよび Left プロパティを含む Right。
例外
array
または index
が null
です。
array
.Type は配列型を表しません。
- または -
array
.Type は、ランクが 1 ではない配列型を表します。
- または -
index
.Type は、Int32 型を表しません。
注釈
index
型 Int32のインデックスを表す必要があります。
結果BinaryExpressionの の プロパティは Method でありnull
、 と IsLiftedToNull の両方IsLiftedが にfalse
設定されます。 プロパティは Type 、 の要素型と array
等しくなります。型。 Conversion プロパティが null
です。
適用対象
.NET