Condividi tramite


Expression.ArrayIndex Metodo

Definizione

Crea un oggetto Expression che rappresenta l'applicazione di un operatore di indice di matrice.

Overload

ArrayIndex(Expression, Expression[])

Crea un oggetto MethodCallExpression che rappresenta l'applicazione di un operatore di indice di matrice a una matrice multidimensionale.

ArrayIndex(Expression, IEnumerable<Expression>)

Crea un oggetto MethodCallExpressionche rappresenta l'applicazione di un operatore di indice di matrice a una matrice con numero di dimensioni maggiore di 1.

ArrayIndex(Expression, Expression)

Crea un oggetto BinaryExpression che rappresenta l'applicazione di un operatore di indice di matrice a una matrice con numero di dimensioni pari a 1.

ArrayIndex(Expression, Expression[])

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs

Crea un oggetto MethodCallExpression che rappresenta l'applicazione di un operatore di indice di matrice a una matrice multidimensionale.

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

Parametri

array
Expression

Matrice di istanze o indici di Expression per l'operazione di indicizzazione delle matrici.

indexes
Expression[]

Matrice di oggetti Expression da usare per popolare la raccolta Arguments.

Restituisce

Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Arguments sono impostate sui valori specificati.

Eccezioni

array o indexes è null.

array.Type non rappresenta un tipo matrice.

-oppure-

Il numero di dimensioni di array.Type non corrisponde al numero di elementi in indexes.

-oppure-

La proprietà Type di uno o più elementi di indexes non rappresenta il tipo Int32.

Esempio

Nell'esempio seguente viene illustrato come usare il metodo per creare un MethodCallExpression oggetto che rappresenta l'indicizzazione ArrayIndex(Expression, Expression[]) in una matrice bidimensionale.

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)

Commenti

Ogni elemento di indexes deve avere Type uguale a Int32. La Type proprietà di deve rappresentare un tipo di array matrice il cui rango corrisponde al numero di elementi in indexes.

Se la classificazione di array. Il tipo è 1, questo metodo restituisce un BinaryExpressionoggetto . La Left proprietà è impostata su array e la Right proprietà è impostata sul singolo elemento di indexes. La Type proprietà dell'oggetto BinaryExpression rappresenta il tipo di elemento di array. Digitare.

Se la classificazione di array. Il tipo è più di uno, questo metodo restituisce un MethodCallExpressionoggetto . La Method proprietà è impostata sull'oggetto MethodInfo che descrive il metodo Get di istanza pubblica sul tipo rappresentato dalla Type proprietà di array.

Si applica a

ArrayIndex(Expression, IEnumerable<Expression>)

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs

Crea un oggetto MethodCallExpressionche rappresenta l'applicazione di un operatore di indice di matrice a una matrice con numero di dimensioni maggiore di 1.

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

Parametri

array
Expression

Oggetto Expression su cui impostare la proprietà Object.

indexes
IEnumerable<Expression>

Oggetto IEnumerable<T> contenente gli oggetti Expression da usare per popolare la raccolta Arguments.

Restituisce

Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Arguments sono impostate sui valori specificati.

Eccezioni

array o indexes è null.

array.Type non rappresenta un tipo matrice.

-oppure-

Il numero di dimensioni di array.Type non corrisponde al numero di elementi in indexes.

-oppure-

La proprietà Type di uno o più elementi di indexes non rappresenta il tipo Int32.

Esempio

Nell'esempio seguente viene illustrato come usare il metodo per creare un MethodCallExpression oggetto che rappresenta l'indicizzazione ArrayIndex(Expression, Expression[]) in una matrice bidimensionale.

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)

Commenti

Ogni elemento di indexes deve avere Type uguale a Int32. La Type proprietà di deve rappresentare un tipo di array matrice il cui rango corrisponde al numero di elementi in indexes.

Se la classificazione di array. Il tipo è 1, questo metodo restituisce un BinaryExpressionoggetto . La Left proprietà è impostata su array e la Right proprietà è impostata sul singolo elemento di indexes. La Type proprietà dell'oggetto BinaryExpression rappresenta il tipo di elemento di array. Digitare.

Se la classificazione di array. Il tipo è più di uno, questo metodo restituisce un MethodCallExpressionoggetto . La Method proprietà è impostata sull'oggetto MethodInfo che descrive il metodo Get di istanza pubblica sul tipo rappresentato dalla Type proprietà di array.

Si applica a

ArrayIndex(Expression, Expression)

Origine:
BinaryExpression.cs
Origine:
BinaryExpression.cs
Origine:
BinaryExpression.cs

Crea un oggetto BinaryExpression che rappresenta l'applicazione di un operatore di indice di matrice a una matrice con numero di dimensioni pari a 1.

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

Parametri

array
Expression

Oggetto Expression su cui impostare la proprietà Left.

index
Expression

Oggetto Expression su cui impostare la proprietà Right.

Restituisce

Oggetto BinaryExpression la cui proprietà NodeType è uguale a ArrayIndex e le cui proprietà Left e Right sono impostate sui valori specificati.

Eccezioni

array o index è null.

array.Type non rappresenta un tipo matrice.

-oppure-

array.Type rappresenta un tipo matrice il cui numero di dimensioni non è pari a 1.

-oppure-

index.Type non rappresenta il tipo Int32.

Commenti

index deve rappresentare un indice di tipo Int32.

La Method proprietà del risultato BinaryExpression è null, e IsLifted entrambi e IsLiftedToNull sono impostati su false. La Type proprietà è uguale al tipo di elemento di array. Digitare. La proprietà Conversion è null.

Si applica a