Expression.ArrayIndex Methode

Definition

Erstellt eine Expression, die das Anwenden eines Arrayindexoperators darstellt.

Überlädt

ArrayIndex(Expression, Expression[])

Erstellt eine MethodCallExpression, die das Anwenden eines Arrayindexoperators auf ein mehrdimensionales Array darstellt.

ArrayIndex(Expression, IEnumerable<Expression>)

Erstellt eine MethodCallExpression, die das Anwenden eines Arrayindexoperators auf ein Array mit einem Rang größer als eins darstellt.

ArrayIndex(Expression, Expression)

Erstellt eine BinaryExpression, die das Anwenden eines Arrayindexoperators auf ein Array mit Rang eins darstellt.

ArrayIndex(Expression, Expression[])

Erstellt eine MethodCallExpression, die das Anwenden eines Arrayindexoperators auf ein mehrdimensionales Array darstellt.

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.

indexes
Expression[]

Ein Array von Expression-Objekten, mit denen die Arguments-Auflistung aufgefüllt wird.

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.

Ausnahmen

array oder indexes ist null.

array.Type stellt keinen Arraytyp dar.

- oder - Der Rang von array.Type entspricht nicht der Anzahl der Elemente in indexes.

- oder - Die Type-Eigenschaft eines oder mehrerer Elemente von indexes stellt nicht den Int32-Typ dar.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der ArrayIndex(Expression, Expression[]) Methode eine MethodCallExpression Indizierung in ein zweidimensionales Array erstellen.

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 gleich Int32seinType. Die Type Eigenschaft muss array einen Arraytyp darstellen, dessen Rang der Anzahl der Elemente entspricht indexes.

Wenn der Rang von array. Typ ist 1, diese Methode gibt eine BinaryExpression. Die Left Eigenschaft wird auf festgelegt array , und die Right Eigenschaft wird auf das einzelne Element von indexes. Die Type Eigenschaft des BinaryExpression Objekts stellt den Elementtyp von array. Typ.

Wenn der Rang von array. Der Typ ist mehr als eins, diese Methode gibt eine MethodCallExpression. Die Method Eigenschaft wird auf die MethodInfo festgelegt, die die öffentliche Instanzmethode Get für den Typ beschreibt, der durch die Type Eigenschaft dargestellt arraywird.

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.

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.

indexes
IEnumerable<Expression>

Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Arguments-Auflistung aufgefüllt werden soll.

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.

Ausnahmen

array oder indexes ist null.

array.Type stellt keinen Arraytyp dar.

- oder - Der Rang von array.Type entspricht nicht der Anzahl der Elemente in indexes.

- oder - Die Type-Eigenschaft eines oder mehrerer Elemente von indexes stellt nicht den Int32-Typ dar.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der ArrayIndex(Expression, Expression[]) Methode eine MethodCallExpression Indizierung in ein zweidimensionales Array erstellen.

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 gleich Int32seinType. Die Type Eigenschaft muss array einen Arraytyp darstellen, dessen Rang der Anzahl der Elemente entspricht indexes.

Wenn der Rang von array. Typ ist 1, diese Methode gibt eine BinaryExpression. Die Left Eigenschaft wird auf festgelegt array , und die Right Eigenschaft wird auf das einzelne Element von indexes. Die Type Eigenschaft des BinaryExpression Objekts stellt den Elementtyp von array. Typ.

Wenn der Rang von array. Der Typ ist mehr als eins, diese Methode gibt eine MethodCallExpression. Die Method Eigenschaft wird auf die MethodInfo festgelegt, die die öffentliche Instanzmethode Get für den Typ beschreibt, der durch die Type Eigenschaft dargestellt arraywird.

Gilt für

ArrayIndex(Expression, Expression)

Erstellt eine BinaryExpression, die das Anwenden eines Arrayindexoperators auf ein Array mit Rang eins darstellt.

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.

index
Expression

Ein Expression, auf das die Right-Eigenschaft festgelegt werden soll.

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.

Ausnahmen

array oder index ist null.

array.Type stellt keinen Arraytyp dar.

- oder - array.Type stellt einen Arraytyp dar, dessen Rang nicht 1 ist.

- oder - index.Type stellt nicht den Int32.Type dar.

Hinweise

index muss einen Index des Typs Int32darstellen.

Die Method Eigenschaft des Resultierenden BinaryExpression ist null, und beide IsLifted und IsLiftedToNull sind auf falsefestgelegt. Die Type Eigenschaft entspricht dem Elementtyp von array. Typ. Die Conversion-Eigenschaft ist null.

Gilt für