Expression.ArrayIndex Método

Definição

Cria uma Expression que representa a aplicação de um operador de índice.Creates an Expression that represents applying an array index operator.

Sobrecargas

ArrayIndex(Expression, Expression[])

Cria um MethodCallExpression que representa a aplicação de um operador de índice de matriz a uma matriz multidimensional.Creates a MethodCallExpression that represents applying an array index operator to a multidimensional array.

ArrayIndex(Expression, IEnumerable<Expression>)

Cria uma MethodCallExpression que representa a aplicação de um operador de índice de matriz a uma matriz de classificação superior a um.Creates a MethodCallExpression that represents applying an array index operator to an array of rank more than one.

ArrayIndex(Expression, Expression)

Cria uma BinaryExpression que representa a aplicação de um operador de índice de matriz a uma matriz de classificação um.Creates a BinaryExpression that represents applying an array index operator to an array of rank one.

ArrayIndex(Expression, Expression[])

Cria um MethodCallExpression que representa a aplicação de um operador de índice de matriz a uma matriz multidimensional.Creates a MethodCallExpression that represents applying an array index operator to a multidimensional array.

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

Parâmetros

array
Expression

Uma matriz de instâncias Expression/índices para a operação de índice da matriz.An array of Expression instances - indexes for the array index operation.

indexes
Expression[]

Uma matriz de objetos Expression a serem usados para popular a coleção de Arguments.An array of Expression objects to use to populate the Arguments collection.

Retornos

MethodCallExpression

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Arguments definidas com os valores especificados.A MethodCallExpression that has the NodeType property equal to Call and the Object and Arguments properties set to the specified values.

Exceções

array ou indexes é null.array or indexes is null.

array.Type não representa um tipo de matriz.array.Type does not represent an array type.

- ou --or- A classificação de array.Type não corresponde ao número de elementos em indexes.The rank of array.Type does not match the number of elements in indexes.

- ou --or- A propriedade Type de um ou mais elementos de indexes não representa o tipo Int32.The Type property of one or more elements of indexes does not represent the Int32 type.

Exemplos

O exemplo a seguir demonstra como usar o ArrayIndex(Expression, Expression[]) método para criar um MethodCallExpression que representa a indexação em uma matriz bidimensional.The following example demonstrates how to use the ArrayIndex(Expression, Expression[]) method to create a MethodCallExpression that represents indexing into a two-dimensional array.

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)

Comentários

Cada elemento de indexes deve ter Type igual a Int32 .Each element of indexes must have Type equal to Int32. A Type propriedade de array deve representar um tipo de matriz cuja classificação corresponde ao número de elementos em indexes .The Type property of array must represent an array type whose rank matches the number of elements in indexes.

Se a classificação de array . O tipo é 1, esse método retorna um BinaryExpression .If the rank of array.Type is 1, this method returns a BinaryExpression. A Left propriedade é definida como array e a Right propriedade é definida como o único elemento de indexes .The Left property is set to array and the Right property is set to the single element of indexes. A Type propriedade de BinaryExpression representa o tipo de elemento de array . Escreva.The Type property of the BinaryExpression represents the element type of array.Type.

Se a classificação de array . O tipo é mais de um, esse método retorna um MethodCallExpression .If the rank of array.Type is more than one, this method returns a MethodCallExpression. A Method propriedade é definida como o MethodInfo que descreve o método de instância pública Get no tipo representado pela Type propriedade de array .The Method property is set to the MethodInfo that describes the public instance method Get on the type represented by the Type property of array.

Aplica-se a

ArrayIndex(Expression, IEnumerable<Expression>)

Cria uma MethodCallExpression que representa a aplicação de um operador de índice de matriz a uma matriz de classificação superior a um.Creates a MethodCallExpression that represents applying an array index operator to an array of rank more than one.

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

Parâmetros

array
Expression

Um Expression para definir a propriedade Object igual a ele.An Expression to set the Object property equal to.

indexes
IEnumerable<Expression>

Um IEnumerable<T> que contém objetos Expression a serem usados para preencher a coleção de Arguments.An IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

Retornos

MethodCallExpression

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Arguments definidas com os valores especificados.A MethodCallExpression that has the NodeType property equal to Call and the Object and Arguments properties set to the specified values.

Exceções

array ou indexes é null.array or indexes is null.

array.Type não representa um tipo de matriz.array.Type does not represent an array type.

- ou --or- A classificação de array.Type não corresponde ao número de elementos em indexes.The rank of array.Type does not match the number of elements in indexes.

- ou --or- A propriedade Type de um ou mais elementos de indexes não representa o tipo Int32.The Type property of one or more elements of indexes does not represent the Int32 type.

Exemplos

O exemplo a seguir demonstra como usar o ArrayIndex(Expression, Expression[]) método para criar um MethodCallExpression que representa a indexação em uma matriz bidimensional.The following example demonstrates how to use the ArrayIndex(Expression, Expression[]) method to create a MethodCallExpression that represents indexing into a two-dimensional array.

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)

Comentários

Cada elemento de indexes deve ter Type igual a Int32 .Each element of indexes must have Type equal to Int32. A Type propriedade de array deve representar um tipo de matriz cuja classificação corresponde ao número de elementos em indexes .The Type property of array must represent an array type whose rank matches the number of elements in indexes.

Se a classificação de array . O tipo é 1, esse método retorna um BinaryExpression .If the rank of array.Type is 1, this method returns a BinaryExpression. A Left propriedade é definida como array e a Right propriedade é definida como o único elemento de indexes .The Left property is set to array and the Right property is set to the single element of indexes. A Type propriedade de BinaryExpression representa o tipo de elemento de array . Escreva.The Type property of the BinaryExpression represents the element type of array.Type.

Se a classificação de array . O tipo é mais de um, esse método retorna um MethodCallExpression .If the rank of array.Type is more than one, this method returns a MethodCallExpression. A Method propriedade é definida como o MethodInfo que descreve o método de instância pública Get no tipo representado pela Type propriedade de array .The Method property is set to the MethodInfo that describes the public instance method Get on the type represented by the Type property of array.

Aplica-se a

ArrayIndex(Expression, Expression)

Cria uma BinaryExpression que representa a aplicação de um operador de índice de matriz a uma matriz de classificação um.Creates a BinaryExpression that represents applying an array index operator to an array of rank one.

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

Parâmetros

array
Expression

Um Expression para definir a propriedade Left igual a ele.A Expression to set the Left property equal to.

index
Expression

Um Expression para definir a propriedade Right igual a ele.A Expression to set the Right property equal to.

Retornos

BinaryExpression

Um BinaryExpression que tem a propriedade NodeType igual a ArrayIndex e as propriedades Left e Right definidas com os valores especificados.A BinaryExpression that has the NodeType property equal to ArrayIndex and the Left and Right properties set to the specified values.

Exceções

array ou index é null.array or index is null.

array.Type não representa um tipo de matriz.array.Type does not represent an array type.

- ou --or- array.Type representa um tipo de matriz cuja classificação não é 1.array.Type represents an array type whose rank is not 1.

- ou --or- index.Type não representa o tipo Int32.index.Type does not represent the Int32 type.

Comentários

index deve representar um índice do tipo Int32 .index must represent an index of type Int32.

A Method Propriedade do resultante BinaryExpression é null , e ambos, IsLifted e IsLiftedToNull são definidos como false .The Method property of the resulting BinaryExpression is null, and both IsLifted and IsLiftedToNull are set to false. A Type propriedade é igual ao tipo de elemento de array . Escreva.The Type property is equal to the element type of array.Type. A propriedade Conversion é null.The Conversion property is null.

Aplica-se a