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 die -Methode verwendet wird, um ein zu erstellen, das die Indizierung in einem ArrayIndex(Expression, Expression[]) MethodCallExpression zweidimensionalen Array darstellt.

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

Wenn der Rang von array ist. Der Typ ist 1. Diese Methode gibt BinaryExpression zurück. Die Left -Eigenschaft ist auf array und die Right -Eigenschaft auf das einzelne Element von indexes festgelegt. Die Type -Eigenschaft von BinaryExpression stellt den Elementtyp von array dar. Typ.

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

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 die -Methode verwendet wird, um ein zu erstellen, das die Indizierung in einem ArrayIndex(Expression, Expression[]) MethodCallExpression zweidimensionalen Array darstellt.

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

Wenn der Rang von array ist. Der Typ ist 1. Diese Methode gibt BinaryExpression zurück. Die Left -Eigenschaft ist auf array und die Right -Eigenschaft auf das einzelne Element von indexes festgelegt. Die Type -Eigenschaft von BinaryExpression stellt den Elementtyp von array dar. Typ.

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

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 vom Typ Int32 darstellen.

Die Method -Eigenschaft des resultierenden BinaryExpression ist , und sowohl als auch werden auf null IsLifted IsLiftedToNull false festgelegt. Die Type -Eigenschaft ist gleich dem Elementtyp array von . Typ. Die Conversion-Eigenschaft ist null.

Gilt für