Expression.ArrayIndex 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立 Expression,表示套用陣列索引運算子。
多載
ArrayIndex(Expression, Expression[]) |
建立 MethodCallExpression,代表將陣列索引運算子套用到多維陣列。 |
ArrayIndex(Expression, IEnumerable<Expression>) |
建立 MethodCallExpression,代表將陣列索引運算子套用到陣序規範大於 1 的陣列。 |
ArrayIndex(Expression, Expression) |
建立 BinaryExpression,代表將陣列索引運算子套用到陣序規範 1 的陣列。 |
ArrayIndex(Expression, Expression[])
建立 MethodCallExpression,代表將陣列索引運算子套用到多維陣列。
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
參數
- array
- Expression
Expression 執行個體 (用於陣列索引運算的索引) 的陣列。
- indexes
- Expression[]
用以填入 Expression 集合之 Arguments 物件的陣列。
傳回
MethodCallExpression,其 NodeType 屬性等於 Call,且 Object 和 Arguments 屬性設定為指定的值。
例外狀況
array
或 indexes
為 null
。
array
.Type 不代表陣列類型。
-或-
array
.Type 的陣序規範不符合 indexes
中的項目數。
-或-
範例
下列範例示範如何使用 ArrayIndex(Expression, Expression[]) 方法來建立 , MethodCallExpression 代表二維陣列的索引編製。
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)
備註
每個元素 indexes
都必須 Type 等於 Int32。 的 Type 屬性 array
必須代表的陣列類型,其排名符合 中的 indexes
項目數目。
如果的 array
排名為 。類型為 1,這個方法會傳 BinaryExpression回 。 屬性 Left 設定 array
為 ,而且 Right 屬性會設定為的單 indexes
一元素。 的 TypeBinaryExpression 屬性代表 的項目 array
類型。類型。
如果的 array
排名為 。類型是多個類型,這個方法會傳 MethodCallExpression回 。 屬性Method會設定為 ,MethodInfo描述 屬性所Typearray
表示之型別上的公用實例方法Get
。
適用於
ArrayIndex(Expression, IEnumerable<Expression>)
建立 MethodCallExpression,代表將陣列索引運算子套用到陣序規範大於 1 的陣列。
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
參數
- array
- Expression
要將 Expression 屬性設定為與之相等的 Object。
- indexes
- IEnumerable<Expression>
IEnumerable<T>,其中包含用以填入 Expression 集合的 Arguments 物件。
傳回
MethodCallExpression,其 NodeType 屬性等於 Call,且 Object 和 Arguments 屬性設定為指定的值。
例外狀況
array
或 indexes
為 null
。
array
.Type 不代表陣列類型。
-或-
array
.Type 的陣序規範不符合 indexes
中的項目數。
-或-
範例
下列範例示範如何使用 ArrayIndex(Expression, Expression[]) 方法來建立 , MethodCallExpression 代表二維陣列的索引編製。
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)
備註
每個元素 indexes
都必須 Type 等於 Int32。 的 Type 屬性 array
必須代表的陣列類型,其排名符合 中的 indexes
項目數目。
如果的 array
排名為 。類型為 1,這個方法會傳 BinaryExpression回 。 屬性 Left 設定 array
為 ,而且 Right 屬性會設定為的單 indexes
一元素。 的 TypeBinaryExpression 屬性代表 的項目 array
類型。類型。
如果的 array
排名為 。類型是多個類型,這個方法會傳 MethodCallExpression回 。 屬性Method會設定為 ,MethodInfo描述 屬性所Typearray
表示之型別上的公用實例方法Get
。
適用於
ArrayIndex(Expression, Expression)
建立 BinaryExpression,代表將陣列索引運算子套用到陣序規範 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
參數
- array
- Expression
要將 Expression 屬性設定為與之相等的 Left。
- index
- Expression
要將 Expression 屬性設定為與之相等的 Right。
傳回
BinaryExpression,其 NodeType 屬性等於 ArrayIndex,且 Left 和 Right 屬性設定為指定的值。
例外狀況
array
或 index
為 null
。
備註
index
必須代表 類型的 Int32索引。
產生的 MethodBinaryExpression 屬性為 null
,而且 和 IsLiftedToNull 都IsLifted設定為 false
。 屬性 Type 等於的項目 array
類型。類型。 Conversion 屬性為 null
。