Expression.Condition Method (Expression, Expression, Expression)
.NET Framework (current version)
Creates a ConditionalExpression that represents a conditional statement.
Assembly: System.Core (in System.Core.dll)
public static ConditionalExpression Condition( Expression test, Expression ifTrue, Expression ifFalse )
Parameters
- test
-
Type:
System.Linq.Expressions.Expression
An Expression to set the Test property equal to.
- ifTrue
-
Type:
System.Linq.Expressions.Expression
An Expression to set the IfTrue property equal to.
- ifFalse
-
Type:
System.Linq.Expressions.Expression
An Expression to set the IfFalse property equal to.
Return Value
Type: System.Linq.Expressions.ConditionalExpressionA ConditionalExpression that has the NodeType property equal to Conditional and the Test, IfTrue, and IfFalse properties set to the specified values.
| Exception | Condition |
|---|---|
| ArgumentNullException | test or ifTrue or ifFalse is null. |
| ArgumentException |
The Type property of the resulting ConditionalExpression is equal to the Type property of ifTrue.
The following code example shows how to create an expression that represents a conditional statement. If the first argument evaluates to true, the second argument is executed; otherwise, the third argument is executed.
// Add the following directive to your file: // using System.Linq.Expressions; int num = 100; // This expression represents a conditional operation. // It evaluates the test (first expression) and // executes the iftrue block (second argument) if the test evaluates to true, // or the iffalse block (third argument) if the test evaluates to false. Expression conditionExpr = Expression.Condition( Expression.Constant(num > 10), Expression.Constant("num is greater than 10"), Expression.Constant("num is smaller than 10") ); // Print out the expression. Console.WriteLine(conditionExpr.ToString()); // The following statement first creates an expression tree, // then compiles it, and then executes it. Console.WriteLine( Expression.Lambda<Func<string>>(conditionExpr).Compile()()); // This code example produces the following output: // // IIF("True", "num is greater than 10", "num is smaller than 10") // num is greater than 10
Universal Windows Platform
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
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
Show: