Sdílet prostřednictvím


Expression.ArrayIndex Metoda

Definice

Vytvoří operátor Expression , který představuje použití operátoru indexu pole.

Přetížení

ArrayIndex(Expression, Expression[])

Vytvoří objekt MethodCallExpression , který představuje použití operátoru indexu pole na multidimenzionální pole.

ArrayIndex(Expression, IEnumerable<Expression>)

Vytvoří objekt MethodCallExpression , který představuje použití operátoru indexu pole na pole s pořadím více než jeden.

ArrayIndex(Expression, Expression)

Vytvoří objekt BinaryExpression , který představuje použití operátoru indexu pole na pole s pořadím 1.

ArrayIndex(Expression, Expression[])

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří objekt MethodCallExpression , který představuje použití operátoru indexu pole na multidimenzionální pole.

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

Pole Expression instancí – indexy pro operaci indexu pole.

indexes
Expression[]

Pole Expression objektů, které se mají použít k naplnění Arguments kolekce.

Návraty

Vlastnost MethodCallExpression a, která má NodeType vlastnost rovna Call a Object vlastnosti a Arguments nastavené na zadané hodnoty.

Výjimky

array nebo indexes je null.

array. Typ nepředstavuje typ pole.

-nebo-

Pořadí array. Typ neodpovídá počtu prvků v indexesnástroji .

-nebo-

Vlastnost Type jednoho nebo více prvků indexes nepředstavuje Int32 typ.

Příklady

Následující příklad ukazuje, jak použít metodu ArrayIndex(Expression, Expression[]) k vytvoření MethodCallExpression , který představuje indexování do dvourozměrného pole.

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)

Poznámky

Každý prvek musí indexes být Type roven hodnotě Int32. Vlastnost Typearray musí představovat typ pole, jehož pořadí odpovídá počtu prvků v indexessouboru .

Pokud je pořadí array. Typ je 1, tato metoda vrátí BinaryExpressionhodnotu . Vlastnost Left je nastavena na array a Right vlastnost je nastavena na jeden prvek objektu indexes. Vlastnost TypeBinaryExpression představuje typ arrayprvku . Typ.

Pokud je pořadí array. Typ je více než jeden, tato metoda vrátí MethodCallExpression. Vlastnost Method je nastavena na MethodInfo hodnotu, která popisuje metodu Get veřejné instance typu reprezentované Type vlastností array.

Platí pro

ArrayIndex(Expression, IEnumerable<Expression>)

Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs
Zdroj:
MethodCallExpression.cs

Vytvoří objekt MethodCallExpression , který představuje použití operátoru indexu pole na pole s pořadím více než 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

An Expression , která nastaví Object vlastnost na hodnotu rovna.

indexes
IEnumerable<Expression>

Objekt IEnumerable<T> obsahující objekty, které Expression se mají použít k naplnění Arguments kolekce.

Návraty

Vlastnost MethodCallExpression a, která má NodeType vlastnost rovna Call a Object vlastnosti a Arguments nastavené na zadané hodnoty.

Výjimky

array nebo indexes je null.

array. Typ nepředstavuje typ pole.

-nebo-

Pořadí array. Typ neodpovídá počtu prvků v indexesnástroji .

-nebo-

Vlastnost Type jednoho nebo více prvků indexes nepředstavuje Int32 typ.

Příklady

Následující příklad ukazuje, jak použít metodu ArrayIndex(Expression, Expression[]) k vytvoření MethodCallExpression , který představuje indexování do dvourozměrného pole.

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)

Poznámky

Každý prvek musí indexes být Type roven hodnotě Int32. Vlastnost Typearray musí představovat typ pole, jehož pořadí odpovídá počtu prvků v indexessouboru .

Pokud je pořadí array. Typ je 1, tato metoda vrátí BinaryExpressionhodnotu . Vlastnost Left je nastavena na array a Right vlastnost je nastavena na jeden prvek objektu indexes. Vlastnost TypeBinaryExpression představuje typ arrayprvku . Typ.

Pokud je pořadí array. Typ je více než jeden, tato metoda vrátí MethodCallExpression. Vlastnost Method je nastavena na MethodInfo hodnotu, která popisuje metodu Get veřejné instance typu reprezentované Type vlastností array.

Platí pro

ArrayIndex(Expression, Expression)

Zdroj:
BinaryExpression.cs
Zdroj:
BinaryExpression.cs
Zdroj:
BinaryExpression.cs

Vytvoří objekt BinaryExpression , který představuje použití operátoru indexu pole na pole s pořadím 1.

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 se vlastnost nastavil Left na hodnotu rovna.

index
Expression

A Expression , aby se vlastnost nastavil Right na hodnotu rovna.

Návraty

Vlastnost BinaryExpression a, která má NodeType vlastnost rovna ArrayIndex a Left vlastnosti a Right nastavené na zadané hodnoty.

Výjimky

array nebo index je null.

array. Typ nepředstavuje typ pole.

-nebo-

array. Typ představuje typ pole, jehož pořadí není 1.

-nebo-

index. Typ nepředstavuje Int32 typ.

Poznámky

index musí představovat index typu Int32.

Vlastnost Method výsledného BinaryExpression objektu je nulla obě IsLiftedIsLiftedToNull a jsou nastaveny na falsehodnotu . Vlastnost Type se rovná typu elementu array. Typ. Vlastnost Conversion je null.

Platí pro