Freigeben über


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[])

Quelle:
MethodCallExpression.cs
Quelle:
MethodCallExpression.cs
Quelle:
MethodCallExpression.cs

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

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 mit der ArrayIndex(Expression, Expression[]) -Methode eine MethodCallExpression erstellen, die die Indizierung in ein zweidimensionales 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 gleich sein TypeInt32. Die Type -Eigenschaft von array muss einen Arraytyp darstellen, dessen Rang mit der Anzahl der Elemente in indexesübereinstimmt.

Wenn der Rang von ist array. Typ ist 1. Diese Methode gibt einen BinaryExpressionzurück. Die Left -Eigenschaft wird auf array festgelegt, und die Right -Eigenschaft wird auf das einzelne Element von indexesfestgelegt. Die Type -Eigenschaft von BinaryExpression stellt den Elementtyp von arraydar. Typ.

Wenn der Rang von ist array. Typ ist mehr als eins, diese Methode gibt einen MethodCallExpressionzurück. Die Method -Eigenschaft ist auf die MethodInfo festgelegt, die die öffentliche instance-Methode Get für den Typ beschreibt, der durch die Type -Eigenschaft von arraydargestellt wird.

Gilt für:

ArrayIndex(Expression, IEnumerable<Expression>)

Quelle:
MethodCallExpression.cs
Quelle:
MethodCallExpression.cs
Quelle:
MethodCallExpression.cs

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

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 mit der ArrayIndex(Expression, Expression[]) -Methode eine MethodCallExpression erstellen, die die Indizierung in ein zweidimensionales 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 gleich sein TypeInt32. Die Type -Eigenschaft von array muss einen Arraytyp darstellen, dessen Rang mit der Anzahl der Elemente in indexesübereinstimmt.

Wenn der Rang von ist array. Typ ist 1. Diese Methode gibt einen BinaryExpressionzurück. Die Left -Eigenschaft wird auf array festgelegt, und die Right -Eigenschaft wird auf das einzelne Element von indexesfestgelegt. Die Type -Eigenschaft von BinaryExpression stellt den Elementtyp von arraydar. Typ.

Wenn der Rang von ist array. Typ ist mehr als eins, diese Methode gibt einen MethodCallExpressionzurück. Die Method -Eigenschaft ist auf die MethodInfo festgelegt, die die öffentliche instance-Methode Get für den Typ beschreibt, der durch die Type -Eigenschaft von arraydargestellt wird.

Gilt für:

ArrayIndex(Expression, Expression)

Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs
Quelle:
BinaryExpression.cs

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

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 Int32darstellen.

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

Gilt für: