Expression.ArrayIndex メソッド

定義

配列の添字演算子の適用を表す Expression を作成します。

オーバーロード

ArrayIndex(Expression, Expression[])

多次元配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。

ArrayIndex(Expression, IEnumerable<Expression>)

ランクが 1 より大きい配列への配列の添字演算子の適用を表す MethodCallExpression を作成します。

ArrayIndex(Expression, Expression)

ランク 1 の配列への配列の添字演算子の適用を表す BinaryExpression を作成します。

ArrayIndex(Expression, Expression[])

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

多次元配列への配列の添字演算子の適用を表す 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 または indexesnull です。

array.Type は配列型を表しません。

- または -

array.Type のランクは、indexes の要素の数と一致しません。

- または -

indexes の 1 つ以上の要素の Type プロパティは、Int32 型を表しません。

次の例では、 メソッドを 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 各要素は TypeInt32等しい必要があります。 の array プロパティはType、ランクが 内indexesの要素の数と一致する配列型を表す必要があります。

のランクの array場合。型は 1 で、このメソッドは を BinaryExpression返します。 プロパティは Leftarray 設定され、 Right プロパティは の indexes単一の要素に設定されます。 の BinaryExpression プロパティはType、 の要素型arrayを表します。型。

のランクの array場合。型が複数の場合、このメソッドは を MethodCallExpression返します。 プロパティはMethod、 の プロパティarrayで表される型のパブリック インスタンス メソッドGetを記述する にType設定MethodInfoされます。

適用対象

ArrayIndex(Expression, IEnumerable<Expression>)

ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs
ソース:
MethodCallExpression.cs

ランクが 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 または indexesnull です。

array.Type は配列型を表しません。

- または -

array.Type のランクは、indexes の要素の数と一致しません。

- または -

indexes の 1 つ以上の要素の Type プロパティは、Int32 型を表しません。

次の例では、 メソッドを 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 各要素は TypeInt32等しい必要があります。 の array プロパティはType、ランクが 内indexesの要素の数と一致する配列型を表す必要があります。

のランクの array場合。型は 1 で、このメソッドは を BinaryExpression返します。 プロパティは Leftarray 設定され、 Right プロパティは の indexes単一の要素に設定されます。 の BinaryExpression プロパティはType、 の要素型arrayを表します。型。

のランクの array場合。型が複数の場合、このメソッドは を MethodCallExpression返します。 プロパティはMethod、 の プロパティarrayで表される型のパブリック インスタンス メソッドGetを記述する にType設定MethodInfoされます。

適用対象

ArrayIndex(Expression, Expression)

ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs
ソース:
BinaryExpression.cs

ランク 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 または indexnull です。

array.Type は配列型を表しません。

- または -

array.Type は、ランクが 1 ではない配列型を表します。

- または -

index.Type は、Int32 型を表しません。

注釈

indexInt32のインデックスを表す必要があります。

結果BinaryExpressionの の プロパティは Method でありnull、 と IsLiftedToNull の両方IsLiftedが にfalse設定されます。 プロパティは Type 、 の要素型と array等しくなります。型。 Conversion プロパティが null です。

適用対象