Expression.ArrayIndex Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en Expression som representerar att använda en matrisindexoperator.
Överlagringar
| Name | Description |
|---|---|
| ArrayIndex(Expression, Expression[]) |
Skapar en MethodCallExpression som representerar att tillämpa en matrisindexoperator på en flerdimensionell matris. |
| ArrayIndex(Expression, IEnumerable<Expression>) |
Skapar en MethodCallExpression som representerar att tillämpa en matrisindexoperator på en matris med rangordning mer än en. |
| ArrayIndex(Expression, Expression) |
Skapar en BinaryExpression som representerar att tillämpa en matrisindexoperator på en matris med rangordning ett. |
ArrayIndex(Expression, Expression[])
Skapar en MethodCallExpression som representerar att tillämpa en matrisindexoperator på en flerdimensionell matris.
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
Parametrar
- array
- Expression
En matris med Expression instanser – index för matrisindexåtgärden.
- indexes
- Expression[]
En matris med Expression objekt som ska användas för att fylla samlingen Arguments .
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Arguments inställda på de angivna värdena.
Undantag
array eller indexes är null.
array. Typen representerar inte en matristyp.
-eller-
Rangordningen för array. Typen matchar inte antalet element i indexes.
-eller-
Egenskapen Type för ett eller flera element av indexes representerar Int32 inte typen.
Exempel
I följande exempel visas hur du använder ArrayIndex(Expression, Expression[]) metoden för att skapa en MethodCallExpression som representerar indexering i en tvådimensionell matris.
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)
Kommentarer
Varje element indexes i måste ha lika med Int32Type . Egenskapen Typearray måste representera en matristyp vars rangordning matchar antalet element i indexes.
Om rangordningen för array. Typen är 1, den här metoden returnerar en BinaryExpression. Egenskapen Left är inställd på array och egenskapen Right är inställd på det enda elementet indexesi . Egenskapen Type för BinaryExpression representerar elementtypen array. Typ.
Om rangordningen för array. Typen är mer än en. Den här metoden returnerar en MethodCallExpression. Egenskapen Method är inställd MethodInfo på som beskriver den offentliga instansmetoden Get för den typ som representeras av Typearrayegenskapen .
Gäller för
ArrayIndex(Expression, IEnumerable<Expression>)
Skapar en MethodCallExpression som representerar att tillämpa en matrisindexoperator på en matris med rangordning mer än en.
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
Parametrar
- array
- Expression
En Expression som egenskapen Object ska vara lika med.
- indexes
- IEnumerable<Expression>
En IEnumerable<T> som innehåller Expression objekt som ska användas för att fylla samlingen Arguments .
Returer
En MethodCallExpression som har egenskapen NodeType lika med Call och Object egenskaperna och Arguments inställda på de angivna värdena.
Undantag
array eller indexes är null.
array. Typen representerar inte en matristyp.
-eller-
Rangordningen för array. Typen matchar inte antalet element i indexes.
-eller-
Egenskapen Type för ett eller flera element av indexes representerar Int32 inte typen.
Exempel
I följande exempel visas hur du använder ArrayIndex(Expression, Expression[]) metoden för att skapa en MethodCallExpression som representerar indexering i en tvådimensionell matris.
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)
Kommentarer
Varje element indexes i måste ha lika med Int32Type . Egenskapen Typearray måste representera en matristyp vars rangordning matchar antalet element i indexes.
Om rangordningen för array. Typen är 1, den här metoden returnerar en BinaryExpression. Egenskapen Left är inställd på array och egenskapen Right är inställd på det enda elementet indexesi . Egenskapen Type för BinaryExpression representerar elementtypen array. Typ.
Om rangordningen för array. Typen är mer än en. Den här metoden returnerar en MethodCallExpression. Egenskapen Method är inställd MethodInfo på som beskriver den offentliga instansmetoden Get för den typ som representeras av Typearrayegenskapen .
Gäller för
ArrayIndex(Expression, Expression)
Skapar en BinaryExpression som representerar att tillämpa en matrisindexoperator på en matris med rangordning ett.
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
Parametrar
- array
- Expression
A Expression för att ange egenskapen Left lika med.
- index
- Expression
A Expression för att ange egenskapen Right lika med.
Returer
En BinaryExpression som har egenskapen NodeType lika med ArrayIndex och Left egenskaperna och Right inställda på de angivna värdena.
Undantag
array eller index är null.
array. Typen representerar inte en matristyp.
-eller-
array. Typ representerar en matristyp vars rangordning inte är 1.
-eller-
index. Typen representerar Int32 inte typen.
Kommentarer
index måste representera ett index av typen Int32.
Egenskapen Method för resultatet BinaryExpression är null, och båda IsLifted och IsLiftedToNull är inställda på false. Egenskapen Type är lika med elementtypen arrayför . Typ. Egenskapen Conversion är null.