英語で読む

次の方法で共有


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, params System.Linq.Expressions.Expression[] indexes);

パラメーター

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)

注釈

indexes 各要素は TypeInt32等しい必要があります。 の array プロパティはType、ランクが 内indexesの要素の数と一致する配列型を表す必要があります。

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

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

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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);

パラメーター

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)

注釈

indexes 各要素は TypeInt32等しい必要があります。 の array プロパティはType、ランクが 内indexesの要素の数と一致する配列型を表す必要があります。

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

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

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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);

パラメーター

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 です。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0