Expression.ArrayIndex Metódus

Definíció

Expression Egy tömbindex-operátor alkalmazását jelképező értéket hoz létre.

Túlterhelések

Name Description
ArrayIndex(Expression, Expression[])

Létrehoz egy MethodCallExpression tömbindex-operátor többdimenziós tömbre való alkalmazását jelképező értéket.

ArrayIndex(Expression, IEnumerable<Expression>)

Létrehoz egy MethodCallExpression tömbindex-operátort egynél több rangot tartalmazó tömbre.

ArrayIndex(Expression, Expression)

Olyan értéket BinaryExpression hoz létre, amely tömbindex-operátort alkalmaz egy rangsorolt tömbre.

ArrayIndex(Expression, Expression[])

Létrehoz egy MethodCallExpression tömbindex-operátor többdimenziós tömbre való alkalmazását jelképező értéket.

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éterek

array
Expression

Példányok tömbje Expression – a tömbindex-művelet indexei.

indexes
Expression[]

A gyűjtemény feltöltéséhez használandó objektumok tömbje ExpressionArguments .

Válaszok

Az MethodCallExpression a tulajdonság, amelynek a NodeType tulajdonsága megegyezikCall, és Arguments a Object tulajdonságok a megadott értékekre vannak állítva.

Kivételek

array vagy indexes az null.

array. A típus nem tömbtípust jelöl.

-vagy-

A rangja array. A típus nem egyezik meg a fájl indexeselemeinek számával.

-vagy-

Egy Type vagy több elem tulajdonsága indexes nem felel meg a típusnak Int32 .

Példák

Az alábbi példa bemutatja, hogyan hozhat létre olyan metódustMethodCallExpression, ArrayIndex(Expression, Expression[]) amely egy kétdimenziós tömbbe való indexelést jelöl.

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)

Megjegyzések

Minden elemnek indexes egyenlőnek kell lennieType.Int32 A Type tulajdonságnak array olyan tömbtípust kell jelölnie, amelynek rangja megegyezik a benne lévő indexeselemek számával.

Ha a rangja array. A típus 1, ez a metódus egy BinaryExpression. A Left tulajdonság értéke array , a Right tulajdonság pedig a tulajdonság egyetlen elemére indexesvan állítva. A Type tulajdonság az BinaryExpression elem típusát arrayjelöli. Típus.

Ha a rangja array. A típus több, ez a metódus egy MethodCallExpression. A Method tulajdonság a nyilvános példány metódusát Get leíró értékre MethodInfo van állítva a tulajdonság arraytulajdonsága által Type képviselt típuson.

A következőre érvényes:

ArrayIndex(Expression, IEnumerable<Expression>)

Létrehoz egy MethodCallExpression tömbindex-operátort egynél több rangot tartalmazó tömbre.

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éterek

array
Expression

Egy Expression a tulajdonság egyenlő értékének beállításához Object .

indexes
IEnumerable<Expression>

A IEnumerable<T> gyűjtemény feltöltéséhez Arguments használandó objektumokat tartalmazó Expression objektum.

Válaszok

Az MethodCallExpression a tulajdonság, amelynek a NodeType tulajdonsága megegyezikCall, és Arguments a Object tulajdonságok a megadott értékekre vannak állítva.

Kivételek

array vagy indexes az null.

array. A típus nem tömbtípust jelöl.

-vagy-

A rangja array. A típus nem egyezik meg a fájl indexeselemeinek számával.

-vagy-

Egy Type vagy több elem tulajdonsága indexes nem felel meg a típusnak Int32 .

Példák

Az alábbi példa bemutatja, hogyan hozhat létre olyan metódustMethodCallExpression, ArrayIndex(Expression, Expression[]) amely egy kétdimenziós tömbbe való indexelést jelöl.

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)

Megjegyzések

Minden elemnek indexes egyenlőnek kell lennieType.Int32 A Type tulajdonságnak array olyan tömbtípust kell jelölnie, amelynek rangja megegyezik a benne lévő indexeselemek számával.

Ha a rangja array. A típus 1, ez a metódus egy BinaryExpression. A Left tulajdonság értéke array , a Right tulajdonság pedig a tulajdonság egyetlen elemére indexesvan állítva. A Type tulajdonság az BinaryExpression elem típusát arrayjelöli. Típus.

Ha a rangja array. A típus több, ez a metódus egy MethodCallExpression. A Method tulajdonság a nyilvános példány metódusát Get leíró értékre MethodInfo van állítva a tulajdonság arraytulajdonsága által Type képviselt típuson.

A következőre érvényes:

ArrayIndex(Expression, Expression)

Olyan értéket BinaryExpression hoz létre, amely tömbindex-operátort alkalmaz egy rangsorolt tömbre.

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éterek

array
Expression

A Expression érték a Left tulajdonság egyenlő értékének beállításához.

index
Expression

A Expression érték a Right tulajdonság egyenlő értékének beállításához.

Válaszok

Az BinaryExpression a tulajdonság, amelynek a NodeType tulajdonsága megegyezikArrayIndex, és Right a Left tulajdonságok a megadott értékekre vannak állítva.

Kivételek

array vagy index az null.

array. A típus nem tömbtípust jelöl.

-vagy-

array. A típus olyan tömbtípust jelöl, amelynek rangja nem 1.

-vagy-

index. A típus nem a típust Int32 jelöli.

Megjegyzések

index típusindexnek Int32kell lennie.

Az Method eredményként kapott BinaryExpression tulajdonság az null, és mindkettő IsLifted , és IsLiftedToNull a következőre falsevan állítva: . A Type tulajdonság megegyezik a következő elemtípussal array: . Típus. A Conversion tulajdonság null.

A következőre érvényes: