ListInitExpression Class
Represents a constructor call that has a collection initializer.
Assembly: System.Core (in System.Core.dll)
| Name | Description | |
|---|---|---|
![]() | CanReduce | Gets a value that indicates whether the expression tree node can be reduced.(Overrides Expression.CanReduce.) |
![]() | Initializers | Gets the element initializers that are used to initialize a collection. |
![]() | NewExpression | Gets the expression that contains a call to the constructor of a collection type. |
![]() | NodeType | Returns the node type of this Expression.(Overrides Expression.NodeType.) |
![]() | Type | Gets the static type of the expression that this Expression represents.(Overrides Expression.Type.) |
| Name | Description | |
|---|---|---|
![]() | Accept(ExpressionVisitor) | 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.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | Reduce() | Reduces the binary expression node to a simpler expression.(Overrides Expression.Reduce().) |
![]() | 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(NewExpression, IEnumerable(Of ElementInit)) | 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(ExpressionVisitor) | 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 example creates a ListInitExpression that represents the initialization of a new dictionary instance that has two key-value pairs.
Dim tree1 As String = "maple" Dim tree2 As String = "oak" Dim addMethod As System.Reflection.MethodInfo = _ Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]").GetMethod("Add") ' Create two ElementInit objects that represent the ' two key-value pairs to add to the Dictionary. Dim elementInit1 As System.Linq.Expressions.ElementInit = _ System.Linq.Expressions.Expression.ElementInit( _ addMethod, _ System.Linq.Expressions.Expression.Constant(tree1.Length), _ System.Linq.Expressions.Expression.Constant(tree1)) Dim elementInit2 As System.Linq.Expressions.ElementInit = _ System.Linq.Expressions.Expression.ElementInit( _ addMethod, _ System.Linq.Expressions.Expression.Constant(tree2.Length), _ System.Linq.Expressions.Expression.Constant(tree2)) ' Create a NewExpression that represents constructing ' a new instance of Dictionary(Of Integer, String). Dim newDictionaryExpression As System.Linq.Expressions.NewExpression = _ System.Linq.Expressions.Expression.[New](Type.GetType("System.Collections.Generic.Dictionary`2[System.Int32, System.String]")) ' Create a ListInitExpression that represents initializing ' a new Dictionary(Of T) instance with two key-value pairs. Dim listInitExpression As System.Linq.Expressions.ListInitExpression = _ System.Linq.Expressions.Expression.ListInit( _ newDictionaryExpression, _ elementInit1, _ elementInit2) Console.WriteLine(listInitExpression.ToString()) ' This code produces the following output: ' ' new Dictionary`2() {Void Add(Int32, System.String)(5,"maple"), ' Void Add(Int32, System.String)(3,"oak")
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


