The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
IndexExpression Class
Represents indexing a property or array.
Namespace: System.Linq.Expressions
Assembly: System.Core (in System.Core.dll)
The IndexExpression type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Arguments | Gets the arguments that will be used to index the property or array. |
![]() | CanReduce | Indicates that the node can be reduced to a simpler node. If this returns true, Reduce() can be called to produce the reduced form. (Inherited from Expression.) |
![]() | Indexer | Gets the PropertyInfo for the property if the expression represents an indexed property, returns null otherwise. |
![]() | NodeType | Returns the node type of this Expression. (Overrides Expression.NodeType.) |
![]() | Object | An object to index. |
![]() | Type | Gets the static type of the expression that this Expression represents. (Overrides Expression.Type.) |
| Name | Description | |
|---|---|---|
![]() | Accept | Dispatches to the specific visit method for this node type. For example, MethodCallExpression calls the VisitMethodCall. (Inherited from Expression.) |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | Reduce | Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced. (Inherited from Expression.) |
![]() | ReduceAndCheck | Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced. (Inherited from Expression.) |
![]() | ReduceExtensions | Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type. (Inherited from Expression.) |
![]() | ToString | Returns a textual representation of the Expression. (Inherited from Expression.) |
![]() | Update | Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression. |
![]() | VisitChildren | Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible. (Inherited from Expression.) |
The following code example shows how to create an object of the IndexExpression type and use it to change a value of an array element by using the ArrayAccess method.
' Add the following directive to your file: ' Imports System.Linq.Expressions ' This parameter expression represents a variable that will hold the array. Dim arrayExpr As ParameterExpression = Expression.Parameter(GetType(Integer()), "Array") ' This parameter expression represents an array index. ' For multidimensional arrays, you can define several indexes. Dim indexExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "Index") ' This parameter represents the value that will be added to a corresponding array element. Dim valueExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "Value") ' This expression represents an array access operation. ' It can be used for assigning to, or reading from, an array element. Dim arrayAccessExpr As Expression = Expression.ArrayAccess( arrayExpr, indexExpr ) ' This lambda expression assigns a value provided to it to a specified array element. ' The array, the index of the array element, and the value to be added to the element ' are parameters of the lambda expression. Dim lambdaExpr As Expression(Of Func(Of Integer(), Integer, Integer, Integer)) = Expression.Lambda(Of Func(Of Integer(), Integer, Integer, Integer))( Expression.Assign(arrayAccessExpr, Expression.Add(arrayAccessExpr, valueExpr)), arrayExpr, indexExpr, valueExpr ) ' Print expressions. outputBlock.Text &= "Array Access Expression:" & vbCrLf outputBlock.Text &= arrayAccessExpr.ToString() & vbCrLf outputBlock.Text &= "Lambda Expression:" & vbCrLf outputBlock.Text &= lambdaExpr.ToString() & vbCrLf outputBlock.Text &= "The result of executing the lambda expression:" & vbCrLf ' The following statement first creates an expression tree, ' then compiles it, and then executes it. ' Parameters passed to the Invoke method are passed to the lambda expression. outputBlock.Text &= lambdaExpr.Compile().Invoke(New Integer() {10, 20, 30}, 0, 5) & vbCrLf ' This code example produces the following output: ' ' Array Access Expression: ' Array[Index] ' Lambda Expression: ' (Array, Index, Value) => (Array[Index] = (Array[Index] + Value)) ' The result of executing the lambda expression: ' 15
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Community Additions
Show:


