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。