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
элемента . Тип. Значение свойства Conversion — null
.