Бөлісу құралы:


Expression.ArrayIndex Метод

Определение

Создает объект, Expression представляющий применение оператора индекса массива.

Перегрузки

Имя Описание
ArrayIndex(Expression, Expression[])

Создает объект MethodCallExpression , представляющий применение оператора индекса массива к многомерному массиву.

ArrayIndex(Expression, IEnumerable<Expression>)

Создает объект MethodCallExpression , представляющий применение оператора индекса массива к массиву ранга более одного.

ArrayIndex(Expression, Expression)

Создает объект BinaryExpression , представляющий применение оператора индекса массива к массиву рангового объекта.

ArrayIndex(Expression, Expression[])

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
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 , равное свойству NodeTypeCall и ObjectArguments свойствам, заданным указанным значениям.

Исключения

array или indexes есть null.

array. Тип не представляет тип массива.

–или–

Ранг array. Тип не соответствует количеству элементов в indexes.

–или–

Свойство Type одного или нескольких indexes элементов не представляет Int32 тип.

Примеры

В следующем примере показано, как использовать ArrayIndex(Expression, Expression[]) метод для создания 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. Свойство Type должно представлять тип массива array , ранг которого соответствует количеству элементов в indexes.

Если ранг array. Тип равен 1, этот метод возвращает BinaryExpressionзначение . Для Left свойства задано array значение, а Right для свойства задан один элемент indexes. Свойство Type объекта BinaryExpression представляет тип arrayэлемента. Тип.

Если ранг array. Тип имеет несколько типов, этот метод возвращает MethodCallExpressionзначение . Для Method свойства задано MethodInfo значение, описывающее метод Get общедоступного экземпляра для типа, представленного свойством Typearray.

Применяется к

ArrayIndex(Expression, IEnumerable<Expression>)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект 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 , равное свойству NodeTypeCall и ObjectArguments свойствам, заданным указанным значениям.

Исключения

array или indexes есть null.

array. Тип не представляет тип массива.

–или–

Ранг array. Тип не соответствует количеству элементов в indexes.

–или–

Свойство Type одного или нескольких indexes элементов не представляет Int32 тип.

Примеры

В следующем примере показано, как использовать ArrayIndex(Expression, Expression[]) метод для создания 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. Свойство Type должно представлять тип массива array , ранг которого соответствует количеству элементов в indexes.

Если ранг array. Тип равен 1, этот метод возвращает BinaryExpressionзначение . Для Left свойства задано array значение, а Right для свойства задан один элемент indexes. Свойство Type объекта BinaryExpression представляет тип arrayэлемента. Тип.

Если ранг array. Тип имеет несколько типов, этот метод возвращает MethodCallExpressionзначение . Для Method свойства задано MethodInfo значение, описывающее метод Get общедоступного экземпляра для типа, представленного свойством Typearray.

Применяется к

ArrayIndex(Expression, Expression)

Исходный код:
BinaryExpression.cs
Исходный код:
BinaryExpression.cs
Исходный код:
BinaryExpression.cs
Исходный код:
BinaryExpression.cs
Исходный код:
BinaryExpression.cs

Создает объект 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 , равное свойству NodeTypeArrayIndex и LeftRight свойствам, заданным указанным значениям.

Исключения

array или index есть null.

array. Тип не представляет тип массива.

–или–

array. Тип представляет тип массива, ранг которого не равен 1.

–или–

index. Тип не представляет Int32 тип.

Комментарии

index должен представлять индекс типа Int32.

Свойство Method результирующего BinaryExpression объекта имеет значение null, а IsLiftedToNullIsLifted для обоих — значение false. Свойство Type равно типу arrayэлемента. Тип. Свойство Conversion является null.

Применяется к