Expression.ArrayIndex Méthode

Définition

Crée un Expression qui représente l'application d'un opérateur index de tableau.

Surcharges

ArrayIndex(Expression, Expression[])

Crée un MethodCallExpression qui représente l'application d'un opérateur index de tableau à un tableau multidimensionnel.

ArrayIndex(Expression, IEnumerable<Expression>)

Crée un MethodCallExpression qui représente l'application d'un opérateur index de tableau à un tableau de rang supérieur à un.

ArrayIndex(Expression, Expression)

Crée un BinaryExpression qui représente l'application d'un opérateur index de tableau à un tableau de rang un.

ArrayIndex(Expression, Expression[])

Crée un MethodCallExpression qui représente l'application d'un opérateur index de tableau à un tableau multidimensionnel.

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

Paramètres

array
Expression

Tableau d'instances Expression, index pour l'opération d'index de tableau.

indexes
Expression[]

Tableau d'objets Expression à utiliser pour remplir la collection Arguments.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Arguments ont les valeurs spécifiées.

Exceptions

array ou indexes est null.

array.Type ne représente pas un type de tableau.

  • ou - Le rang de array.Type ne correspond pas au nombre d'éléments dans indexes.

  • ou - La propriété Type d'un ou plusieurs éléments de indexes ne représente pas le type Int32.

Exemples

L’exemple suivant montre comment utiliser la ArrayIndex(Expression, Expression[]) méthode pour créer un qui représente l’indexation MethodCallExpression dans un tableau à deux dimensions.

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)

Remarques

Chaque élément de indexes doit avoir Type égal à Int32. La Type propriété de array doit représenter un type de tableau dont le classement correspond au nombre d’éléments dans indexes.

Si le rang de array. Type 1, cette méthode retourne un BinaryExpression. La Left propriété est définie sur array et la Right propriété est définie sur l’élément unique de indexes. Propriété Type du type d’élément BinaryExpression de array. Type.

Si le rang de array. Le type est plusieurs, cette méthode retourne un MethodCallExpression. La Method propriété est définie sur celle MethodInfo qui décrit la méthode Get d’instance publique sur le type représenté par la Type propriété de array.

S’applique à

ArrayIndex(Expression, IEnumerable<Expression>)

Crée un MethodCallExpression qui représente l'application d'un opérateur index de tableau à un tableau de rang supérieur à un.

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

Paramètres

array
Expression

Expression auquel la propriété Object doit être égale.

indexes
IEnumerable<Expression>

IEnumerable<T> qui contient des objets Expression à utiliser pour remplir la collection Arguments.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Arguments ont les valeurs spécifiées.

Exceptions

array ou indexes est null.

array.Type ne représente pas un type de tableau.

  • ou - Le rang de array.Type ne correspond pas au nombre d'éléments dans indexes.

  • ou - La propriété Type d'un ou plusieurs éléments de indexes ne représente pas le type Int32.

Exemples

L’exemple suivant montre comment utiliser la ArrayIndex(Expression, Expression[]) méthode pour créer un qui représente l’indexation MethodCallExpression dans un tableau à deux dimensions.

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)

Remarques

Chaque élément de indexes doit avoir Type égal à Int32. La Type propriété de array doit représenter un type de tableau dont le classement correspond au nombre d’éléments dans indexes.

Si le rang de array. Type 1, cette méthode retourne un BinaryExpression. La Left propriété est définie sur array et la Right propriété est définie sur l’élément unique de indexes. Propriété Type du type d’élément BinaryExpression de array. Type.

Si le rang de array. Le type est plusieurs, cette méthode retourne un MethodCallExpression. La Method propriété est définie sur celle MethodInfo qui décrit la méthode Get d’instance publique sur le type représenté par la Type propriété de array.

S’applique à

ArrayIndex(Expression, Expression)

Crée un BinaryExpression qui représente l'application d'un opérateur index de tableau à un tableau de rang un.

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

Paramètres

array
Expression

Expression auquel la propriété Left doit être égale.

index
Expression

Expression auquel la propriété Right doit être égale.

Retours

BinaryExpression

BinaryExpression dont la propriété NodeType est égale à ArrayIndex et dont les propriétés Left et Right ont les valeurs spécifiées.

Exceptions

array ou index est null.

array.Type ne représente pas un type de tableau.

  • ou - array.Type représente un type de tableau dont le rang n'est pas 1.

  • ou - index.Type ne représente pas le type Int32.

Remarques

index doit représenter un index de type Int32.

La Method propriété du résultat BinaryExpression est null, et les deux IsLifted et IsLiftedToNull sont définies sur false. La Type propriété est égale au type d’élément de array. Type. La propriété Conversion a la valeur null.

S’applique à