Поделиться через


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, представляющее применение оператора индекса массива к многомерному массиву.

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.

-или-

Свойство 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. Свойство TypeBinaryExpression объекта представляет тип arrayэлемента . Тип.

Если ранг array. Тип имеет несколько значений. Этот метод возвращает значение MethodCallExpression. Свойству MethodMethodInfo присваивается значение , описывающее метод Get открытого экземпляра в типе, представленном свойством Type объекта array.

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

ArrayIndex(Expression, IEnumerable<Expression>)

Исходный код:
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 со свойствомNodeType, равным Call, и свойствами Object и Arguments, для которых заданы указанные значения.

Исключения

Параметр array или indexes имеет значение null.

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

-или-

Ранг типа array.Type не соответствует количеству элементов в 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. Свойство TypeBinaryExpression объекта представляет тип arrayэлемента . Тип.

Если ранг array. Тип имеет несколько значений. Этот метод возвращает значение MethodCallExpression. Свойству MethodMethodInfo присваивается значение , описывающее метод Get открытого экземпляра в типе, представленном свойством Type объекта array.

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

ArrayIndex(Expression, Expression)

Исходный код:
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 со свойствомNodeType, равным ArrayIndex, и свойствами Left и Right, для которых заданы указанные значения.

Исключения

Параметр array или index имеет значение null.

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

-или-

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

-или-

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

Комментарии

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

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

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