Expression.ArrayIndex 메서드

정의

배열 인덱스 연산자 적용을 나타내는 Expression을 만듭니다.

오버로드

ArrayIndex(Expression, Expression[])

다차원 배열에 대한 배열 인덱스 연산자를 적용하는 MethodCallExpression을 만듭니다.

ArrayIndex(Expression, IEnumerable<Expression>)

차수가 1보다 큰 배열에 대한 배열 인덱스 연산자 적용을 나타내는 MethodCallExpression을 만듭니다.

ArrayIndex(Expression, Expression)

차수가 1인 배열에 대한 배열 인덱스 연산자 적용을 나타내는 BinaryExpression을 만듭니다.

ArrayIndex(Expression, Expression[])

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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이고 CallObject 속성이 지정된 값으로 설정된 Arguments입니다.

예외

array 또는 indexesnull인 경우

array.Type이 배열 형식을 나타내지 않는 경우

또는

array.Type의 차수가 indexes의 요소 수와 일치하지 않는 경우

또는

indexes의 요소 중 하나 이상의 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 각 요소는 와 같Int32아야 Type 합니다. 의 array 속성은 Type 순위가 의 요소 수와 일치하는 배열 형식을 indexes나타내야 합니다.

의 순위이면 입니다 array. 형식은 1이고, 이 메서드는 를 반환합니다 BinaryExpression. 속성이 Leftarray 설정되고 속성이 Rightindexes단일 요소로 설정됩니다. 의 BinaryExpression 속성은 Type 의 요소 형식을 array나타냅니다. 형식.

의 순위이면 입니다 array. 형식이 둘 이상인 경우 이 메서드는 를 반환합니다 MethodCallExpression. 속성은 Method 의 속성arrayMethodInfo 나타내는 형식의 공용 인스턴스 메서드 Get 를 설명하는 로 Type 설정됩니다.

적용 대상

ArrayIndex(Expression, IEnumerable<Expression>)

Source:
MethodCallExpression.cs
Source:
MethodCallExpression.cs
Source:
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이고 CallObject 속성이 지정된 값으로 설정된 Arguments입니다.

예외

array 또는 indexesnull인 경우

array.Type이 배열 형식을 나타내지 않는 경우

또는

array.Type의 차수가 indexes의 요소 수와 일치하지 않는 경우

또는

indexes의 요소 중 하나 이상의 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 각 요소는 와 같Int32아야 Type 합니다. 의 array 속성은 Type 순위가 의 요소 수와 일치하는 배열 형식을 indexes나타내야 합니다.

의 순위이면 입니다 array. 형식은 1이고, 이 메서드는 를 반환합니다 BinaryExpression. 속성이 Leftarray 설정되고 속성이 Rightindexes단일 요소로 설정됩니다. 의 BinaryExpression 속성은 Type 의 요소 형식을 array나타냅니다. 형식.

의 순위이면 입니다 array. 형식이 둘 이상인 경우 이 메서드는 를 반환합니다 MethodCallExpression. 속성은 Method 의 속성arrayMethodInfo 나타내는 형식의 공용 인스턴스 메서드 Get 를 설명하는 로 Type 설정됩니다.

적용 대상

ArrayIndex(Expression, Expression)

Source:
BinaryExpression.cs
Source:
BinaryExpression.cs
Source:
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이고 ArrayIndexLeft 속성이 지정된 값으로 설정된 Right입니다.

예외

array 또는 indexnull인 경우

array.Type이 배열 형식을 나타내지 않는 경우

또는

array.Type이 나타내는 배열 형식의 차수가 1이 아닌 경우

또는

index.Type이 Int32 형식을 나타내지 않는 경우

설명

index 는 형식 Int32의 인덱스여야 합니다.

결과 BinaryExpression 의 속성은 Method 이며 null및 는 모두 IsLiftedIsLiftedToNullfalse설정됩니다. 속성은 Typearray요소 형식과 같습니다. 형식. Conversion 속성은 null입니다.

적용 대상