System.Linq.Expressions Namespace

Microsoft Silverlight will reach end of support after October 2021. Learn more.

The System.Linq.Expressions namespace contains classes, interfaces and enumerations that enable language-level code expressions to be represented as objects in the form of expression trees.

The abstract class Expression provides the root of a class hierarchy used to model expression trees.

The classes in this namespace that derive from Expression, for example MemberExpression and ParameterExpression, are used to represent nodes in an expression tree. The Expression class contains static (Shared in Visual Basic) factory methods to create expression tree nodes of the various types.

The enumeration type ExpressionType specifies the unique node types.


  Class Description
Public class BinaryExpression Represents an expression that has a binary operator.
Public class BlockExpression Represents a block that contains a sequence of expressions where variables can be defined.
Public class CatchBlock Represents a catch statement in a try block.
Public class ConditionalExpression Represents an expression that has a conditional operator.
Public class ConstantExpression Represents an expression that has a constant value.
Public class DebugInfoExpression Emits or clears a sequence point for debug information. This allows the debugger to highlight the correct source code when debugging.
Public class DefaultExpression Represents the default value of a type or an empty expression.
Public class DynamicExpression Represents a dynamic operation.
Public class ElementInit Represents an initializer for a single element of an IEnumerable collection.
Public class Expression Provides the base class from which the classes that represent expression tree nodes are derived. It also contains static (Shared in Visual Basic) factory methods to create the various node types. This is an abstract class.
Public class Expression<TDelegate> Represents a strongly typed lambda expression as a data structure in the form of an expression tree. This class cannot be inherited.
Public class ExpressionVisitor Represents a visitor or rewriter for expression trees.
Public class GotoExpression Represents an unconditional jump. This includes return statements, break and continue statements, and other jumps.
Public class IndexExpression Represents indexing a property or array.
Public class InvocationExpression Represents an expression that applies a delegate or lambda expression to a list of argument expressions.
Public class LabelExpression Represents a label, which can be put in any Expression context. If it is jumped to, it will get the value provided by the corresponding GotoExpression. Otherwise, it receives the value in DefaultValue. If the Type equals System.Void, no value should be provided.
Public class LabelTarget Used to represent the target of a GotoExpression.
Public class LambdaExpression Describes a lambda expression. This captures a block of code that is similar to a .NET method body.
Public class ListInitExpression Represents a constructor call that has a collection initializer.
Public class LoopExpression Represents an infinite loop. It can be exited with "break".
Public class MemberAssignment Represents assignment operation for a field or property of an object.
Public class MemberBinding Provides the base class from which the classes that represent bindings that are used to initialize members of a newly created object derive.
Public class MemberExpression Represents accessing a field or property.
Public class MemberInitExpression Represents calling a constructor and initializing one or more members of the new object.
Public class MemberListBinding Represents initializing the elements of a collection member of a newly created object.
Public class MemberMemberBinding Represents initializing members of a member of a newly created object.
Public class MethodCallExpression Represents a call to either static or an instance method.
Public class NewArrayExpression Represents creating a new array and possibly initializing the elements of the new array.
Public class NewExpression Represents a constructor call.
Public class ParameterExpression Represents a named parameter expression.
Public class RuntimeVariablesExpression An expression that provides runtime read/write permission for variables.
Public class SwitchCase Represents one case of a SwitchExpression.
Public class SwitchExpression Represents a control expression that handles multiple selections by passing control to SwitchCase.
Public class SymbolDocumentInfo Stores information necessary to emit debugging symbol information for a source file, in particular the file name and unique language identifier.
Public class TryExpression Represents a try/catch/finally/fault block.
Public class TypeBinaryExpression Represents an operation between an expression and a type.
Public class UnaryExpression Represents an expression that has a unary operator.


  Enumeration Description
Public enumeration ExpressionType Describes the node types for the nodes of an expression tree.
Public enumeration GotoExpressionKind Specifies what kind of jump this GotoExpression represents.
Public enumeration MemberBindingType Describes the binding types that are used in MemberInitExpression objects.