System.Linq.Expressions Namespace

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.

Remarks

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.

Classes

TypeReason
BinaryExpression

Represents an expression that has a binary operator.

BlockExpression

Represents a block that contains a sequence of expressions where variables can be defined.

CatchBlock

Represents a catch statement in a try block.

ConditionalExpression

Represents an expression that has a conditional operator.

ConstantExpression

Represents an expression that has a constant value.

DebugInfoExpression

Emits or clears a sequence point for debug information. This allows the debugger to highlight the correct source code when debugging.

DefaultExpression

Represents the default value of a type or an empty expression.

DynamicExpression

Represents a dynamic operation.

DynamicExpressionVisitor

Represents a visitor or rewriter for dynamic expression trees.

ElementInit

Represents an initializer for a single element of an IEnumerable collection.

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.

Expression<TDelegate>

Represents a strongly typed lambda expression as a data structure in the form of an expression tree. This class cannot be inherited.

ExpressionType

Describes the node types for the nodes of an expression tree.

ExpressionVisitor

Represents a visitor or rewriter for expression trees.

GotoExpression

Represents an unconditional jump. This includes return statements, break and continue statements, and other jumps.

GotoExpressionKind

Specifies what kind of jump this GotoExpression represents.

IndexExpression

Represents indexing a property or array.

InvocationExpression

Represents an expression that applies a delegate or lambda expression to a list of argument expressions.

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 LabelExpression.DefaultValue. If the Type equals System.Void, no value should be provided.

LabelTarget

Used to represent the target of a GotoExpression.

LambdaExpression

Describes a lambda expression. This captures a block of code that is similar to a .NET method body.

ListInitExpression

Represents a constructor call that has a collection initializer.

LoopExpression

Represents an infinite loop. It can be exited with "break".

MemberAssignment

Represents assignment operation for a field or property of an object.

MemberBinding

Provides the base class from which the classes that represent bindings that are used to initialize members of a newly created object derive.

MemberBindingType

Describes the binding types that are used in MemberInitExpression objects.

MemberExpression

Represents accessing a field or property.

MemberInitExpression

Represents calling a constructor and initializing one or more members of the new object.

MemberListBinding

Represents initializing the elements of a collection member of a newly created object.

MemberMemberBinding

Represents initializing members of a member of a newly created object.

MethodCallExpression

Represents a call to either static or an instance method.

NewArrayExpression

Represents creating a new array and possibly initializing the elements of the new array.

NewExpression

Represents a constructor call.

ParameterExpression

Represents a named parameter expression.

RuntimeVariablesExpression

An expression that provides runtime read/write permission for variables.

SwitchCase

Represents one case of a SwitchExpression.

SwitchExpression

Represents a control expression that handles multiple selections by passing control to SwitchCase.

SymbolDocumentInfo

Stores information necessary to emit debugging symbol information for a source file, in particular the file name and unique language identifier.

TryExpression

Represents a try/catch/finally/fault block.

TypeBinaryExpression

Represents an operation between an expression and a type.

UnaryExpression

Represents an expression that has a unary operator.