Expression.ArrayIndex Método

Definição

Cria uma Expression que representa a aplicação de um operador de índice.

Sobrecargas

ArrayIndex(Expression, Expression[])

Cria um MethodCallExpression que representa a aplicação de um operador de índice de matriz a uma matriz multidimensional.

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.

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.

ArrayIndex(Expression, Expression[])

Cria um MethodCallExpression que representa a aplicação de um operador de índice de matriz a uma matriz multidimensional.

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.

indexes
Expression[]

Uma matriz de objetos Expression a serem usados para popular a coleção de Arguments.

Retornos

MethodCallExpression

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Arguments definidas com os valores especificados.

Exceções

array ou indexes é null.

array.Type não representa um tipo de matriz.

- ou - A classificação de array.Type não corresponde ao número de elementos em indexes.

- ou - A propriedade Type de um ou mais elementos de indexes não representa o tipo Int32.

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.

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 deve indexes ter Type igual a Int32. A Type propriedade de deve representar um tipo de array matriz cuja classificação corresponde ao número de elementos em indexes.

Se a classificação de array. O tipo é 1, esse método retorna um BinaryExpression. A Left propriedade é definida array como e a Right propriedade é definida como o único elemento de indexes. A Type propriedade do BinaryExpression elemento representa o tipo de elemento de array. Tipo.

Se a classificação de array. O tipo é mais de um, esse método retorna um MethodCallExpression. A Method propriedade é definida como a MethodInfo que descreve o método Get de instância pública no tipo representado pela Type propriedade de 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.

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.

indexes
IEnumerable<Expression>

Um IEnumerable<T> que contém objetos Expression a serem usados para preencher a coleção de Arguments.

Retornos

MethodCallExpression

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Arguments definidas com os valores especificados.

Exceções

array ou indexes é null.

array.Type não representa um tipo de matriz.

- ou - A classificação de array.Type não corresponde ao número de elementos em indexes.

- ou - A propriedade Type de um ou mais elementos de indexes não representa o tipo Int32.

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.

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 deve indexes ter Type igual a Int32. A Type propriedade de deve representar um tipo de array matriz cuja classificação corresponde ao número de elementos em indexes.

Se a classificação de array. O tipo é 1, esse método retorna um BinaryExpression. A Left propriedade é definida array como e a Right propriedade é definida como o único elemento de indexes. A Type propriedade do BinaryExpression elemento representa o tipo de elemento de array. Tipo.

Se a classificação de array. O tipo é mais de um, esse método retorna um MethodCallExpression. A Method propriedade é definida como a MethodInfo que descreve o método Get de instância pública no tipo representado pela Type propriedade de 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.

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.

index
Expression

Um Expression para definir a propriedade Right igual a ele.

Retornos

BinaryExpression

Um BinaryExpression que tem a propriedade NodeType igual a ArrayIndex e as propriedades Left e Right definidas com os valores especificados.

Exceções

array ou index é null.

array.Type não representa um tipo de matriz.

- ou - array.Type representa um tipo de matriz cuja classificação não é 1.

- ou - index.Type não representa o tipo Int32.

Comentários

index deve representar um índice do tipo Int32.

A Method propriedade do resultado BinaryExpression é null, e ambos IsLifted e IsLiftedToNull são definidos como false. A Type propriedade é igual ao tipo de elemento de array. Tipo. A propriedade Conversion é null.

Aplica-se a