Expression.ArrayIndex Metoda

Definicja

Tworzy obiekt Expression reprezentujący zastosowanie operatora indeksu tablicy.

Przeciążenia

ArrayIndex(Expression, Expression[])

Tworzy obiekt MethodCallExpression reprezentujący zastosowanie operatora indeksu tablicy do tablicy wielowymiarowej.

ArrayIndex(Expression, IEnumerable<Expression>)

Tworzy obiekt MethodCallExpression , który reprezentuje zastosowanie operatora indeksu tablicy do tablicy rangi więcej niż jeden.

ArrayIndex(Expression, Expression)

Tworzy obiekt BinaryExpression reprezentujący zastosowanie operatora indeksu tablicy do tablicy rangi.

ArrayIndex(Expression, Expression[])

Źródło:
MethodCallExpression.cs
Źródło:
MethodCallExpression.cs
Źródło:
MethodCallExpression.cs

Tworzy obiekt MethodCallExpression reprezentujący zastosowanie operatora indeksu tablicy do tablicy wielowymiarowej.

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

Parametry

array
Expression

Tablica Expression wystąpień — indeksy dla operacji indeksu tablicy.

indexes
Expression[]

Tablica Expression obiektów do użycia w celu wypełnienia kolekcji Arguments .

Zwraca

Właściwość MethodCallExpression , która ma właściwość równą CallNodeType i Object właściwości i Arguments ustawione na określone wartości.

Wyjątki

array lub indexes ma wartość null.

array. Typ nie reprezentuje typu tablicy.

-lub-

Ranga . array Typ nie odpowiada liczbie elementów w elemecie indexes.

-lub-

Właściwość Type jednego lub większej liczby indexes elementów nie reprezentuje Int32 typu.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą ArrayIndex(Expression, Expression[]) metody utworzyć MethodCallExpression indeksowanie reprezentujące indeksowanie w tablicy dwuwymiarowej.

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)

Uwagi

Każdy element indexes musi mieć Type wartość równą Int32. Właściwość Typearray musi reprezentować typ tablicy, którego ranga odpowiada liczbie elementów w obiekcie indexes.

Jeśli ranga . array Typ to 1. Ta metoda zwraca BinaryExpressionwartość . Właściwość jest ustawiona Left na array , a Right właściwość jest ustawiona na pojedynczy element .indexes Właściwość Type obiektu BinaryExpression reprezentuje typ arrayelementu . Typu.

Jeśli ranga . array Typ jest więcej niż jeden. Ta metoda zwraca MethodCallExpressionwartość . Właściwość jest ustawiona Method na MethodInfo wartość , która opisuje metodę Get wystąpienia publicznego dla typu reprezentowanego Type przez właściwość array.

Dotyczy

ArrayIndex(Expression, IEnumerable<Expression>)

Źródło:
MethodCallExpression.cs
Źródło:
MethodCallExpression.cs
Źródło:
MethodCallExpression.cs

Tworzy obiekt MethodCallExpression , który reprezentuje zastosowanie operatora indeksu tablicy do tablicy rangi więcej niż jeden.

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

Parametry

array
Expression

Element Expression do ustawiania Object właściwości równej.

indexes
IEnumerable<Expression>

Obiekt IEnumerable<T> zawierający Expression obiekty używane do wypełniania kolekcji Arguments .

Zwraca

Właściwość MethodCallExpression , która ma właściwość równą CallNodeType i Object właściwości i Arguments ustawione na określone wartości.

Wyjątki

array lub indexes ma wartość null.

array. Typ nie reprezentuje typu tablicy.

-lub-

Ranga . array Typ nie odpowiada liczbie elementów w elemecie indexes.

-lub-

Właściwość Type jednego lub większej liczby indexes elementów nie reprezentuje Int32 typu.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą ArrayIndex(Expression, Expression[]) metody utworzyć MethodCallExpression indeksowanie reprezentujące indeksowanie w tablicy dwuwymiarowej.

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)

Uwagi

Każdy element indexes musi mieć Type wartość równą Int32. Właściwość Typearray musi reprezentować typ tablicy, którego ranga odpowiada liczbie elementów w obiekcie indexes.

Jeśli ranga . array Typ to 1. Ta metoda zwraca BinaryExpressionwartość . Właściwość jest ustawiona Left na array , a Right właściwość jest ustawiona na pojedynczy element .indexes Właściwość Type obiektu BinaryExpression reprezentuje typ arrayelementu . Typu.

Jeśli ranga . array Typ jest więcej niż jeden. Ta metoda zwraca MethodCallExpressionwartość . Właściwość jest ustawiona Method na MethodInfo wartość , która opisuje metodę Get wystąpienia publicznego dla typu reprezentowanego Type przez właściwość array.

Dotyczy

ArrayIndex(Expression, Expression)

Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs
Źródło:
BinaryExpression.cs

Tworzy obiekt BinaryExpression reprezentujący zastosowanie operatora indeksu tablicy do tablicy rangi.

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

Parametry

array
Expression

A Expression , aby ustawić właściwość równą Left .

index
Expression

A Expression , aby ustawić właściwość równą Right .

Zwraca

Właściwość BinaryExpression , która ma właściwość równą ArrayIndexNodeType i Left właściwości i Right ustawione na określone wartości.

Wyjątki

array lub index ma wartość null.

array. Typ nie reprezentuje typu tablicy.

-lub-

array. Typ reprezentuje typ tablicy, którego ranga nie jest równa 1.

-lub-

index. Typ nie reprezentuje Int32 typu.

Uwagi

index musi reprezentować indeks typu Int32.

Właściwość Method wynikowej BinaryExpression to null, i IsLiftedIsLiftedToNull są ustawione na falsewartość . Właściwość Type jest równa typowi arrayelementu . Typu. Właściwość Conversion to null.

Dotyczy