Expression.ArrayIndex Método

Definición

Crea un objeto Expression que representa la aplicación de un operador de índice de matriz.

Sobrecargas

ArrayIndex(Expression, Expression[])

Crea un objeto MethodCallExpression que representa la aplicación de un operador de índice de matriz a una matriz multidimensional.

ArrayIndex(Expression, IEnumerable<Expression>)

Crea un objeto MethodCallExpression que representa la aplicación de un operador de índice de matriz a una matriz cuyo rango es mayor que uno.

ArrayIndex(Expression, Expression)

Crea un objeto BinaryExpression que representa la aplicación de un operador de índice de matriz a una matriz de rango uno.

ArrayIndex(Expression, Expression[])

Crea un objeto MethodCallExpression que representa la aplicación de un operador de índice de matriz a una 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

Matriz de instancias o índices Expression para la operación de índice de matriz.

indexes
Expression[]

Matriz de objetos Expression que se va a usar para rellenar la colección de Arguments.

Devoluciones

MethodCallExpression

MethodCallExpression cuya propiedad NodeType es Call y cuyas propiedades Object y Arguments se establecen en los valores especificados.

Excepciones

array o indexes es null.

array.Type no representa un tipo de matriz.

o bien El rango de array.Type no coincide con el número de elementos en indexes.

o bien La propiedad Type de uno o varios elementos de indexes no representa el tipo Int32.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el ArrayIndex(Expression, Expression[]) método para crear un MethodCallExpression objeto que representa la indexación en una 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)

Comentarios

Cada elemento de indexes debe tener Type el mismo valor que Int32. La Type propiedad de debe representar un tipo de array matriz cuya clasificación coincide con el número de elementos de indexes.

Si el rango de array. El tipo es 1, este método devuelve un BinaryExpression. La Left propiedad se establece array en y la Right propiedad se establece en el único elemento de indexes. La Type propiedad de BinaryExpression representa el tipo de elemento de array. Tipo.

Si el rango de array. El tipo es más de uno, este método devuelve un MethodCallExpression. La Method propiedad se establece en que MethodInfo describe el método Get de instancia pública en el tipo representado por la Type propiedad de array.

Se aplica a

ArrayIndex(Expression, IEnumerable<Expression>)

Crea un objeto MethodCallExpression que representa la aplicación de un operador de índice de matriz a una matriz cuyo rango es mayor que uno.

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

Objeto Expression en el que se va a establecer la propiedad Object.

indexes
IEnumerable<Expression>

IEnumerable<T> que contiene los objetos Expression que se van a usar para rellenar la colección de Arguments.

Devoluciones

MethodCallExpression

MethodCallExpression cuya propiedad NodeType es Call y cuyas propiedades Object y Arguments se establecen en los valores especificados.

Excepciones

array o indexes es null.

array.Type no representa un tipo de matriz.

o bien El rango de array.Type no coincide con el número de elementos en indexes.

o bien La propiedad Type de uno o varios elementos de indexes no representa el tipo Int32.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el ArrayIndex(Expression, Expression[]) método para crear un MethodCallExpression objeto que representa la indexación en una 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)

Comentarios

Cada elemento de indexes debe tener Type el mismo valor que Int32. La Type propiedad de debe representar un tipo de array matriz cuya clasificación coincide con el número de elementos de indexes.

Si el rango de array. El tipo es 1, este método devuelve un BinaryExpression. La Left propiedad se establece array en y la Right propiedad se establece en el único elemento de indexes. La Type propiedad de BinaryExpression representa el tipo de elemento de array. Tipo.

Si el rango de array. El tipo es más de uno, este método devuelve un MethodCallExpression. La Method propiedad se establece en que MethodInfo describe el método Get de instancia pública en el tipo representado por la Type propiedad de array.

Se aplica a

ArrayIndex(Expression, Expression)

Crea un objeto BinaryExpression que representa la aplicación de un operador de índice de matriz a una matriz de rango uno.

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

Expression en el que se va a establecer la propiedad Left.

index
Expression

Expression en el que se va a establecer la propiedad Right.

Devoluciones

BinaryExpression

BinaryExpression cuya propiedad NodeType es ArrayIndex y cuyas propiedades Left y Right se establecen en los valores especificados.

Excepciones

array o index es null.

array.Type no representa un tipo de matriz.

o bien array.Type representa un tipo de matriz cuyo rango no es 1.

o bien index.Type no representa el tipo Int32.

Comentarios

index debe representar un índice de tipo Int32.

La Method propiedad del resultante BinaryExpression es null, y y IsLifted IsLiftedToNull se establecen en false. La Type propiedad es igual al tipo de elemento de array. Tipo. La propiedad Conversion es null.

Se aplica a