Expression.ArrayIndex Methode

Definition

Erstellt eine Expression, die das Anwenden eines Arrayindexoperators darstellt.Creates an Expression that represents applying an array index operator.

Überlädt

ArrayIndex(Expression, Expression[])

Erstellt eine MethodCallExpression, die das Anwenden eines Arrayindexoperators auf ein mehrdimensionales Array darstellt.Creates a MethodCallExpression that represents applying an array index operator to a multidimensional array.

ArrayIndex(Expression, IEnumerable<Expression>)

Erstellt eine MethodCallExpression, die das Anwenden eines Arrayindexoperators auf ein Array mit einem Rang größer als eins darstellt.Creates a MethodCallExpression that represents applying an array index operator to an array of rank more than one.

ArrayIndex(Expression, Expression)

Erstellt eine BinaryExpression, die das Anwenden eines Arrayindexoperators auf ein Array mit Rang eins darstellt.Creates a BinaryExpression that represents applying an array index operator to an array of rank one.

ArrayIndex(Expression, Expression[])

Erstellt eine MethodCallExpression, die das Anwenden eines Arrayindexoperators auf ein mehrdimensionales Array darstellt.Creates a MethodCallExpression that represents applying an array index operator to a multidimensional array.

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

Parameter

array
Expression

Ein Array von Expression-Instanzen - Indizes für den Arrayindizierungsvorgang.An array of Expression instances - indexes for the array index operation.

indexes
Expression[]

Ein Array von Expression-Objekten, mit denen die Arguments-Auflistung aufgefüllt wird.An array of Expression objects to use to populate the Arguments collection.

Gibt zurück

MethodCallExpression

Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.A MethodCallExpression that has the NodeType property equal to Call and the Object and Arguments properties set to the specified values.

Ausnahmen

array oder indexes ist null.array or indexes is null.

array.Type stellt keinen Arraytyp dar.array.Type does not represent an array type.

- oder --or- Der Rang von array.Type entspricht nicht der Anzahl der Elemente in indexes.The rank of array.Type does not match the number of elements in indexes.

- oder --or- Die Type-Eigenschaft eines oder mehrerer Elemente von indexes stellt nicht den Int32-Typ dar.The Type property of one or more elements of indexes does not represent the Int32 type.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die-Methode verwendet wird ArrayIndex(Expression, Expression[]) , um eine zu erstellen MethodCallExpression , die die Indizierung in einem zweidimensionalen Array darstellt.The following example demonstrates how to use the ArrayIndex(Expression, Expression[]) method to create a MethodCallExpression that represents indexing into a two-dimensional array.

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)

Hinweise

Jedes Element von indexes muss Type gleich sein Int32 .Each element of indexes must have Type equal to Int32. Die- Type Eigenschaft von array muss einen Arraytyp darstellen, dessen Rang mit der Anzahl der Elemente in übereinstimmt indexes .The Type property of array must represent an array type whose rank matches the number of elements in indexes.

, Wenn der Rang von lautet array . Der Typ ist 1, diese Methode gibt einen zurück BinaryExpression .If the rank of array.Type is 1, this method returns a BinaryExpression. Die Left -Eigenschaft ist auf festgelegt, array und die- Right Eigenschaft wird auf das einzelne Element von festgelegt indexes .The Left property is set to array and the Right property is set to the single element of indexes. Die- Type Eigenschaft des-Objekts BinaryExpression stellt den Elementtyp von dar array . Sorte.The Type property of the BinaryExpression represents the element type of array.Type.

, Wenn der Rang von lautet array . Der Typ ist mehr als 1, diese Methode gibt einen zurück MethodCallExpression .If the rank of array.Type is more than one, this method returns a MethodCallExpression. Die- Method Eigenschaft wird auf den festgelegt MethodInfo , der die öffentliche Instanzmethode Get für den Typ beschreibt, der durch die- Type Eigenschaft von dargestellt wird array .The Method property is set to the MethodInfo that describes the public instance method Get on the type represented by the Type property of array.

Gilt für:

ArrayIndex(Expression, IEnumerable<Expression>)

Erstellt eine MethodCallExpression, die das Anwenden eines Arrayindexoperators auf ein Array mit einem Rang größer als eins darstellt.Creates a MethodCallExpression that represents applying an array index operator to an array of rank more than one.

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

Parameter

array
Expression

Ein Expression, auf den die Object-Eigenschaft festgelegt werden soll.An Expression to set the Object property equal to.

indexes
IEnumerable<Expression>

Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Arguments-Auflistung aufgefüllt werden soll.An IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

Gibt zurück

MethodCallExpression

Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.A MethodCallExpression that has the NodeType property equal to Call and the Object and Arguments properties set to the specified values.

Ausnahmen

array oder indexes ist null.array or indexes is null.

array.Type stellt keinen Arraytyp dar.array.Type does not represent an array type.

- oder --or- Der Rang von array.Type entspricht nicht der Anzahl der Elemente in indexes.The rank of array.Type does not match the number of elements in indexes.

- oder --or- Die Type-Eigenschaft eines oder mehrerer Elemente von indexes stellt nicht den Int32-Typ dar.The Type property of one or more elements of indexes does not represent the Int32 type.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die-Methode verwendet wird ArrayIndex(Expression, Expression[]) , um eine zu erstellen MethodCallExpression , die die Indizierung in einem zweidimensionalen Array darstellt.The following example demonstrates how to use the ArrayIndex(Expression, Expression[]) method to create a MethodCallExpression that represents indexing into a two-dimensional array.

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)

Hinweise

Jedes Element von indexes muss Type gleich sein Int32 .Each element of indexes must have Type equal to Int32. Die- Type Eigenschaft von array muss einen Arraytyp darstellen, dessen Rang mit der Anzahl der Elemente in übereinstimmt indexes .The Type property of array must represent an array type whose rank matches the number of elements in indexes.

, Wenn der Rang von lautet array . Der Typ ist 1, diese Methode gibt einen zurück BinaryExpression .If the rank of array.Type is 1, this method returns a BinaryExpression. Die Left -Eigenschaft ist auf festgelegt, array und die- Right Eigenschaft wird auf das einzelne Element von festgelegt indexes .The Left property is set to array and the Right property is set to the single element of indexes. Die- Type Eigenschaft des-Objekts BinaryExpression stellt den Elementtyp von dar array . Sorte.The Type property of the BinaryExpression represents the element type of array.Type.

, Wenn der Rang von lautet array . Der Typ ist mehr als 1, diese Methode gibt einen zurück MethodCallExpression .If the rank of array.Type is more than one, this method returns a MethodCallExpression. Die- Method Eigenschaft wird auf den festgelegt MethodInfo , der die öffentliche Instanzmethode Get für den Typ beschreibt, der durch die- Type Eigenschaft von dargestellt wird array .The Method property is set to the MethodInfo that describes the public instance method Get on the type represented by the Type property of array.

Gilt für:

ArrayIndex(Expression, Expression)

Erstellt eine BinaryExpression, die das Anwenden eines Arrayindexoperators auf ein Array mit Rang eins darstellt.Creates a BinaryExpression that represents applying an array index operator to an array of rank one.

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

Parameter

array
Expression

Ein Expression, auf das die Left-Eigenschaft festgelegt werden soll.A Expression to set the Left property equal to.

index
Expression

Ein Expression, auf das die Right-Eigenschaft festgelegt werden soll.A Expression to set the Right property equal to.

Gibt zurück

BinaryExpression

Ein BinaryExpression, bei dem die NodeType-Eigenschaft gleich ArrayIndex ist und die Left-Eigenschaft sowie die Right-Eigenschaft auf die angegebenen Werte festgelegt sind.A BinaryExpression that has the NodeType property equal to ArrayIndex and the Left and Right properties set to the specified values.

Ausnahmen

array oder index ist null.array or index is null.

array.Type stellt keinen Arraytyp dar.array.Type does not represent an array type.

- oder --or- array.Type stellt einen Arraytyp dar, dessen Rang nicht 1 ist.array.Type represents an array type whose rank is not 1.

- oder --or- index.Type stellt nicht den Int32.Type dar.index.Type does not represent the Int32 type.

Hinweise

index muss einen Index vom Typ darstellen Int32 .index must represent an index of type Int32.

Die- Method Eigenschaft des resultierenden BinaryExpression ist null , und IsLifted und IsLiftedToNull werden auf festgelegt false .The Method property of the resulting BinaryExpression is null, and both IsLifted and IsLiftedToNull are set to false. Die- Type Eigenschaft ist gleich dem Elementtyp von array . Sorte.The Type property is equal to the element type of array.Type. Die Conversion-Eigenschaft ist null.The Conversion property is null.

Gilt für: