Expression.ArrayIndex 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建一个表示应用数组索引运算符的 Expression。
重载
ArrayIndex(Expression, Expression[]) |
创建一个 MethodCallExpression,它表示将数组索引运算符应用到多维数组中。 |
ArrayIndex(Expression, IEnumerable<Expression>) |
创建一个 MethodCallExpression,它表示将数组索引运算符应用到多个级别的数组中。 |
ArrayIndex(Expression, Expression) |
创建一个 BinaryExpression,它表示将数组索引运算符应用到级别一的数组中。 |
ArrayIndex(Expression, Expression[])
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
创建一个 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
。 Type的 BinaryExpression 属性表示 的array
元素类型。类型。
如果 的排名为 array
。类型为多个类型,此方法返回 MethodCallExpression。 属性Method设置为 ,MethodInfo用于描述 由 的 属性array
表示Type的类型上的公共实例方法Get
。
适用于
ArrayIndex(Expression, IEnumerable<Expression>)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
创建一个 MethodCallExpression,它表示将数组索引运算符应用到多个级别的数组中。
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
。 Type的 BinaryExpression 属性表示 的array
元素类型。类型。
如果 的排名为 array
。类型为多个类型,此方法返回 MethodCallExpression。 属性Method设置为 ,MethodInfo用于描述 由 的 属性array
表示Type的类型上的公共实例方法Get
。
适用于
ArrayIndex(Expression, Expression)
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
- Source:
- BinaryExpression.cs
创建一个 BinaryExpression,它表示将数组索引运算符应用到级别一的数组中。
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索引。
Method生成的 BinaryExpression 的 属性为 null
,并且 和 IsLiftedToNull 都IsLifted设置为 false
。 属性 Type 等于 的 array
元素类型。类型。 Conversion 属性为 null
。