Expressions Cheat Sheet


I started getting really tired of looking up the translation between the ExpressionType and concrete Expression type (they don’t match up), so I created this cheat sheet that has each ExpressionType, derived Expression type and a simple example.  What’s interesting is a few are only available in VB.NET, but no one really wants non-short-circuited Or/And operators, do they?  You can [download the PDF version](http://grabbagoftimg.s3.amazonaws.com/Expression Cheat Sheet.pdf), or just view the big list in all its glory:

<td width="142">
  Type
</td>

<td width="474">
  Example
</td>
<td>
  BinaryExpression
</td>

<td>
  <pre><span style="color: blue">int </span>i = 2, j = 3;

Expression<Func<int>> example = () => i + j;

  <p>
    <a href="http://11011.net/software/vspaste"></a></td> </tr> 
    
    <tr>
      <td>
        AddChecked
      </td>
      
      <td>
        BinaryExpression
      </td>
      
      <td>
        <pre><span style="color: blue">int </span>i = <span style="color: #2b91af">Int32</span>.MaxValue, j = 1;

Expression<Func<int>> example = () => checked(i + j);

        <p>
          <a href="http://11011.net/software/vspaste"></a></td> </tr> 
          
          <tr>
            <td>
              And
            </td>
            
            <td>
              BinaryExpression
            </td>
            
            <td>
              <pre><span style="color: blue">Dim </span>i <span style="color: blue">As Boolean </span>= <span style="color: blue">True</span>, j <span style="color: blue">As Boolean </span>= <span style="color: blue">False

Dim sample As Expression(Of Func(Of Boolean)) = _ Function() i And j

              <p>
                <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                
                <tr>
                  <td>
                    AndAlso
                  </td>
                  
                  <td>
                    BinaryExpression
                  </td>
                  
                  <td>
                    <pre><span style="color: blue">bool </span>i = <span style="color: blue">true</span>, j = <span style="color: blue">false</span>;

Expression<Func<bool>> example = () => i && j;

                    <p>
                      <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                      
                      <tr>
                        <td>
                          ArrayLength
                        </td>
                        
                        <td>
                          UnaryExpression
                        </td>
                        
                        <td>
                          <pre><span style="color: blue">int</span>[] values = {1, 2, 3};

Expression<Func<int>> example = () => values.Length;

                          <p>
                            <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                            
                            <tr>
                              <td>
                                ArrayIndex
                              </td>
                              
                              <td>
                                MethodCallExpression
                              </td>
                              
                              <td>
                                <pre><span style="color: blue">int</span>[] values = {1, 2, 3};

Expression<Func<int>> example = () => values[1];

                                <p>
                                  <a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                  
                                  <tr>
                                    <td>
                                      Call
                                    </td>
                                    
                                    <td>
                                      MethodCallExpression
                                    </td>
                                    
                                    <td>
                                      <pre><span style="color: blue">var </span>sample = <span style="color: blue">new </span><span style="color: #2b91af">Sample</span>();

Expression<Func<int>> example = () => sample.Calc();

                                  <tr>
                                    <td>
                                      Coalesce
                                    </td>
                                    
                                    <td>
                                      BinaryExpression
                                    </td>
                                    
                                    <td>
                                      <pre><span style="color: blue">int</span>? i = <span style="color: blue">null</span>, j = 5;

Expression<Func<int?>> example = () => i ?? j;

                                      <p>
                                        <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                        
                                        <tr>
                                          <td>
                                            Conditional
                                          </td>
                                          
                                          <td>
                                            ConditionalExpression
                                          </td>
                                          
                                          <td>
                                            <pre><span style="color: blue">int </span>i = 3, j = 5;

bool k = false; Expression<Func<int?>> example = () => k ? i : j;

                                            <p>
                                              <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                              
                                              <tr>
                                                <td>
                                                  Constant
                                                </td>
                                                
                                                <td>
                                                  ConstantExpression
                                                </td>
                                                
                                                <td>
                                                  <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: blue">int</span>&gt;&gt; example = () =&gt; 5;</pre>
                                                  
                                                  <p>
                                                    <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                    
                                                    <tr>
                                                      <td>
                                                        Convert
                                                      </td>
                                                      
                                                      <td>
                                                        UnaryExpression
                                                      </td>
                                                      
                                                      <td>
                                                        <pre><span style="color: blue">int </span>i = 5;

object j = i; Expression<Func<int>> example = () => (int) j;

                                                        <p>
                                                          <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                          
                                                          <tr>
                                                            <td>
                                                              ConvertChecked
                                                            </td>
                                                            
                                                            <td>
                                                              UnaryExpression
                                                            </td>
                                                            
                                                            <td>
                                                              <pre><span style="color: blue">long </span>i = 5;

Expression<Func<int>> example = () => checked((int)i);

                                                              <p>
                                                                <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                
                                                                <tr>
                                                                  <td>
                                                                    Divide
                                                                  </td>
                                                                  
                                                                  <td>
                                                                    BinaryExpression
                                                                  </td>
                                                                  
                                                                  <td>
                                                                    <pre><span style="color: blue">int </span>i = 21, j = 3;

Expression<Func<int>> example = () => i / j;

                                                                    <p>
                                                                      <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                      
                                                                      <tr>
                                                                        <td>
                                                                          Equal
                                                                        </td>
                                                                        
                                                                        <td>
                                                                          BinaryExpression
                                                                        </td>
                                                                        
                                                                        <td>
                                                                          <pre><span style="color: blue">int </span>i = 21, j = 3;

Expression<Func<bool>> example = () => i == j;

                                                                          <p>
                                                                            <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                            
                                                                            <tr>
                                                                              <td>
                                                                                ExclusiveOr
                                                                              </td>
                                                                              
                                                                              <td>
                                                                                BinaryExpression
                                                                              </td>
                                                                              
                                                                              <td>
                                                                                <pre><span style="color: blue">int </span>i = 12, j = 7;

Expression<Func<int>> example = () => i ^ j;

                                                                                <p>
                                                                                  <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                  
                                                                                  <tr>
                                                                                    <td>
                                                                                      GreaterThan
                                                                                    </td>
                                                                                    
                                                                                    <td>
                                                                                      BinaryExpression
                                                                                    </td>
                                                                                    
                                                                                    <td>
                                                                                      <pre><span style="color: blue">int </span>i = 12, j = 7;

Expression<Func<bool>> example = () => i > j;

                                                                                      <p>
                                                                                        <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                        
                                                                                        <tr>
                                                                                          <td>
                                                                                            GreaterThanOrEqual
                                                                                          </td>
                                                                                          
                                                                                          <td>
                                                                                            BinaryExpression
                                                                                          </td>
                                                                                          
                                                                                          <td>
                                                                                            <pre><span style="color: blue">int </span>i = 12, j = 7;

Expression<Func<bool>> example = () => i >= j;

                                                                                            <p>
                                                                                              <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                              
                                                                                              <tr>
                                                                                                <td>
                                                                                                  Invoke
                                                                                                </td>
                                                                                                
                                                                                                <td>
                                                                                                  InvocationExpression
                                                                                                </td>
                                                                                                
                                                                                                <td>
                                                                                                  <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: blue">int</span>, <span style="color: blue">int</span>, <span style="color: blue">int</span>&gt;&gt; expr = (i, j) =&gt; i + j;

Expression invoke = Expression.Invoke( expr, Expression.Constant(5), Expression.Constant(4)); Expression<Func<int>> example = Expression.Lambda<Func<int>>(invoke);

                                                                                                  <p>
                                                                                                    <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                    
                                                                                                    <tr>
                                                                                                      <td>
                                                                                                        Lambda
                                                                                                      </td>
                                                                                                      
                                                                                                      <td>
                                                                                                        LambdaExpression
                                                                                                      </td>
                                                                                                      
                                                                                                      <td>
                                                                                                        <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: blue">int</span>&gt;&gt; example = 
<span style="color: #2b91af">Expression</span>.Lambda&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: blue">int</span>&gt;&gt;(<span style="color: #2b91af">Expression</span>.Constant(5));</pre>
                                                                                                        
                                                                                                        <p>
                                                                                                          <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                          
                                                                                                          <tr>
                                                                                                            <td>
                                                                                                              LeftShift
                                                                                                            </td>
                                                                                                            
                                                                                                            <td>
                                                                                                              BinaryExpression
                                                                                                            </td>
                                                                                                            
                                                                                                            <td>
                                                                                                              <pre><span style="color: blue">int </span>i = 8;

Expression<Func<int>> example = () => i << 1;

                                                                                                              <p>
                                                                                                                <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                
                                                                                                                <tr>
                                                                                                                  <td>
                                                                                                                    LessThan
                                                                                                                  </td>
                                                                                                                  
                                                                                                                  <td>
                                                                                                                    BinaryExpression
                                                                                                                  </td>
                                                                                                                  
                                                                                                                  <td>
                                                                                                                    <pre><span style="color: blue">int </span>i = 12, j = 7;

Expression<Func<bool>> example = () => i < j;

                                                                                                                    <p>
                                                                                                                      <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                      
                                                                                                                      <tr>
                                                                                                                        <td>
                                                                                                                          LessThanOrEqual
                                                                                                                        </td>
                                                                                                                        
                                                                                                                        <td>
                                                                                                                          BinaryExpression
                                                                                                                        </td>
                                                                                                                        
                                                                                                                        <td>
                                                                                                                          <pre><span style="color: blue">int </span>i = 12, j = 7;

Expression<Func<bool>> example = () => i <= j;

                                                                                                                          <p>
                                                                                                                            <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                            
                                                                                                                            <tr>
                                                                                                                              <td>
                                                                                                                                ListInit
                                                                                                                              </td>
                                                                                                                              
                                                                                                                              <td>
                                                                                                                                ListInitExpression
                                                                                                                              </td>
                                                                                                                              
                                                                                                                              <td>
                                                                                                                                <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: #2b91af">List</span>&lt;<span style="color: blue">int</span>&gt;&gt;&gt; example =
() =&gt; <span style="color: blue">new </span><span style="color: #2b91af">List</span>&lt;<span style="color: blue">int</span>&gt; {1, 2, 3};</pre>
                                                                                                                                
                                                                                                                                <p>
                                                                                                                                  <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                  
                                                                                                                                  <tr>
                                                                                                                                    <td>
                                                                                                                                      MemberAccess
                                                                                                                                    </td>
                                                                                                                                    
                                                                                                                                    <td>
                                                                                                                                      MemberExpression
                                                                                                                                    </td>
                                                                                                                                    
                                                                                                                                    <td>
                                                                                                                                      <pre><span style="color: blue">var </span>c = <span style="color: blue">new </span><span style="color: #2b91af">Customer </span>{Name = <span style="color: #a31515">"Bob"</span>};

Expression<Func<string>> example = () => c.Name;

                                                                                                                                      <p>
                                                                                                                                        <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                        
                                                                                                                                        <tr>
                                                                                                                                          <td>
                                                                                                                                            MemberInit
                                                                                                                                          </td>
                                                                                                                                          
                                                                                                                                          <td>
                                                                                                                                            MemberInitExpression
                                                                                                                                          </td>
                                                                                                                                          
                                                                                                                                          <td>
                                                                                                                                            <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: #2b91af">Customer</span>&gt;&gt; example =
() =&gt; <span style="color: blue">new </span><span style="color: #2b91af">Customer </span>{Name = <span style="color: #a31515">"Bob"</span>};</pre>
                                                                                                                                            
                                                                                                                                            <p>
                                                                                                                                              <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                              
                                                                                                                                              <tr>
                                                                                                                                                <td>
                                                                                                                                                  Modulo
                                                                                                                                                </td>
                                                                                                                                                
                                                                                                                                                <td>
                                                                                                                                                  BinaryExpression
                                                                                                                                                </td>
                                                                                                                                                
                                                                                                                                                <td>
                                                                                                                                                  <pre><span style="color: blue">int </span>i = 5, j = 3;

Expression<Func<int>> example = () => i % j;

                                                                                                                                                  <p>
                                                                                                                                                    <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                    
                                                                                                                                                    <tr>
                                                                                                                                                      <td>
                                                                                                                                                        Multiply
                                                                                                                                                      </td>
                                                                                                                                                      
                                                                                                                                                      <td>
                                                                                                                                                        BinaryExpression
                                                                                                                                                      </td>
                                                                                                                                                      
                                                                                                                                                      <td>
                                                                                                                                                        <pre><span style="color: blue">int </span>i = 5, j = 3;

Expression<Func<int>> example = () => i * j;

                                                                                                                                                        <p>
                                                                                                                                                          <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                          
                                                                                                                                                          <tr>
                                                                                                                                                            <td>
                                                                                                                                                              MultiplyChecked
                                                                                                                                                            </td>
                                                                                                                                                            
                                                                                                                                                            <td>
                                                                                                                                                              BinaryExpression
                                                                                                                                                            </td>
                                                                                                                                                            
                                                                                                                                                            <td>
                                                                                                                                                              <pre><span style="color: blue">int </span>i = 5, j = 3;

Expression<Func<int>> example = () => checked(i * j);

                                                                                                                                                              <p>
                                                                                                                                                                <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                
                                                                                                                                                                <tr>
                                                                                                                                                                  <td>
                                                                                                                                                                    Negate
                                                                                                                                                                  </td>
                                                                                                                                                                  
                                                                                                                                                                  <td>
                                                                                                                                                                    UnaryExpression
                                                                                                                                                                  </td>
                                                                                                                                                                  
                                                                                                                                                                  <td>
                                                                                                                                                                    <pre><span style="color: blue">int </span>i = 5;

Expression<Func<int>> example = () => -i;

                                                                                                                                                                    <p>
                                                                                                                                                                      <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                      
                                                                                                                                                                      <tr>
                                                                                                                                                                        <td>
                                                                                                                                                                          UnaryPlus
                                                                                                                                                                        </td>
                                                                                                                                                                        
                                                                                                                                                                        <td>
                                                                                                                                                                          UnaryExpression
                                                                                                                                                                        </td>
                                                                                                                                                                        
                                                                                                                                                                        <td>
                                                                                                                                                                          <pre><span style="color: blue">var </span>m = <span style="color: blue">new </span><span style="color: #2b91af">Money </span>{ Amount = -10m };

Expression<Func<Money>> example = () => +m;

                                                                                                                                                                          <p>
                                                                                                                                                                            <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                            
                                                                                                                                                                            <tr>
                                                                                                                                                                              <td>
                                                                                                                                                                                NegateChecked
                                                                                                                                                                              </td>
                                                                                                                                                                              
                                                                                                                                                                              <td>
                                                                                                                                                                                UnaryExpression
                                                                                                                                                                              </td>
                                                                                                                                                                              
                                                                                                                                                                              <td>
                                                                                                                                                                                <pre><span style="color: blue">int </span>i = 5;

Expression<Func<int>> example = () => checked(-i);

                                                                                                                                                                                <p>
                                                                                                                                                                                  <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                  
                                                                                                                                                                                  <tr>
                                                                                                                                                                                    <td>
                                                                                                                                                                                      New
                                                                                                                                                                                    </td>
                                                                                                                                                                                    
                                                                                                                                                                                    <td>
                                                                                                                                                                                      NewExpression
                                                                                                                                                                                    </td>
                                                                                                                                                                                    
                                                                                                                                                                                    <td>
                                                                                                                                                                                      <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: #2b91af">Customer</span>&gt;&gt; example = 
() =&gt; <span style="color: blue">new </span><span style="color: #2b91af">Customer</span>();</pre>
                                                                                                                                                                                      
                                                                                                                                                                                      <p>
                                                                                                                                                                                        <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                        
                                                                                                                                                                                        <tr>
                                                                                                                                                                                          <td>
                                                                                                                                                                                            NewArrayInit
                                                                                                                                                                                          </td>
                                                                                                                                                                                          
                                                                                                                                                                                          <td>
                                                                                                                                                                                            NewArrayExpression
                                                                                                                                                                                          </td>
                                                                                                                                                                                          
                                                                                                                                                                                          <td>
                                                                                                                                                                                            <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: blue">int</span>[]&gt;&gt; example = 
() =&gt; <span style="color: blue">new</span>[] {1, 2, 3};</pre>
                                                                                                                                                                                            
                                                                                                                                                                                            <p>
                                                                                                                                                                                              <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                              
                                                                                                                                                                                              <tr>
                                                                                                                                                                                                <td>
                                                                                                                                                                                                  NewArrayBounds
                                                                                                                                                                                                </td>
                                                                                                                                                                                                
                                                                                                                                                                                                <td>
                                                                                                                                                                                                  NewArrayExpression
                                                                                                                                                                                                </td>
                                                                                                                                                                                                
                                                                                                                                                                                                <td>
                                                                                                                                                                                                  <pre><span style="color: #2b91af">Expression</span>&lt;<span style="color: #2b91af">Func</span>&lt;<span style="color: blue">int</span>[]&gt;&gt; example = () =&gt; <span style="color: blue">new int</span>[10];</pre>
                                                                                                                                                                                                  
                                                                                                                                                                                                  <p>
                                                                                                                                                                                                    <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                    
                                                                                                                                                                                                    <tr>
                                                                                                                                                                                                      <td>
                                                                                                                                                                                                        Not
                                                                                                                                                                                                      </td>
                                                                                                                                                                                                      
                                                                                                                                                                                                      <td>
                                                                                                                                                                                                        UnaryExpression
                                                                                                                                                                                                      </td>
                                                                                                                                                                                                      
                                                                                                                                                                                                      <td>
                                                                                                                                                                                                        <pre><span style="color: blue">bool </span>val = <span style="color: blue">true</span>;

Expression<Func<bool>> example = () => !val;

                                                                                                                                                                                                        <p>
                                                                                                                                                                                                          <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                          
                                                                                                                                                                                                          <tr>
                                                                                                                                                                                                            <td>
                                                                                                                                                                                                              NotEqual
                                                                                                                                                                                                            </td>
                                                                                                                                                                                                            
                                                                                                                                                                                                            <td>
                                                                                                                                                                                                              BinaryExpression
                                                                                                                                                                                                            </td>
                                                                                                                                                                                                            
                                                                                                                                                                                                            <td>
                                                                                                                                                                                                              <pre><span style="color: blue">int </span>i = 4, j = 7;

Expression<Func<bool>> example = () => i != j;

                                                                                                                                                                                                              <p>
                                                                                                                                                                                                                <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                
                                                                                                                                                                                                                <tr>
                                                                                                                                                                                                                  <td>
                                                                                                                                                                                                                    Or
                                                                                                                                                                                                                  </td>
                                                                                                                                                                                                                  
                                                                                                                                                                                                                  <td>
                                                                                                                                                                                                                    BinaryExpression
                                                                                                                                                                                                                  </td>
                                                                                                                                                                                                                  
                                                                                                                                                                                                                  <td>
                                                                                                                                                                                                                    <pre><span style="color: blue">Dim </span>i <span style="color: blue">As Boolean </span>= <span style="color: blue">True</span>, j <span style="color: blue">As Boolean </span>= <span style="color: blue">False

Dim sample As Expression(Of Func(Of Boolean)) = _ Function() i Or j

                                                                                                                                                                                                                    <p>
                                                                                                                                                                                                                      <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                      
                                                                                                                                                                                                                      <tr>
                                                                                                                                                                                                                        <td>
                                                                                                                                                                                                                          OrElse
                                                                                                                                                                                                                        </td>
                                                                                                                                                                                                                        
                                                                                                                                                                                                                        <td>
                                                                                                                                                                                                                          BinaryExpression
                                                                                                                                                                                                                        </td>
                                                                                                                                                                                                                        
                                                                                                                                                                                                                        <td>
                                                                                                                                                                                                                          <pre><span style="color: blue">bool </span>i = <span style="color: blue">true</span>, j = <span style="color: blue">false</span>;

Expression<Func<bool>> example = () => i || j;

                                                                                                                                                                                                                          <p>
                                                                                                                                                                                                                            <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            <tr>
                                                                                                                                                                                                                              <td>
                                                                                                                                                                                                                                Parameter
                                                                                                                                                                                                                              </td>
                                                                                                                                                                                                                              
                                                                                                                                                                                                                              <td>
                                                                                                                                                                                                                                ParameterExpression
                                                                                                                                                                                                                              </td>
                                                                                                                                                                                                                              
                                                                                                                                                                                                                              <td>
                                                                                                                                                                                                                                <pre><span style="color: green">// (i, j) =&gt; i + j;

ParameterExpression param1 = Expression.Parameter(typeof (int), “i”); ParameterExpression param2 = Expression.Parameter(typeof (int), “j”); var addExpression = Expression.Add(param1, param2); var example = Expression.Lambda<Func<int, int, int>>( addExpression, param1, param2);

                                                                                                                                                                                                                                <p>
                                                                                                                                                                                                                                  <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                  <tr>
                                                                                                                                                                                                                                    <td>
                                                                                                                                                                                                                                      Power
                                                                                                                                                                                                                                    </td>
                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                    <td>
                                                                                                                                                                                                                                      BinaryExpression
                                                                                                                                                                                                                                    </td>
                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                    <td>
                                                                                                                                                                                                                                      <pre><span style="color: blue">Dim </span>i <span style="color: blue">As Integer </span>= 3, j <span style="color: blue">As Integer </span>= 2

Dim sample As Expression(Of Func(Of Integer)) = _ Function() i ^ j

                                                                                                                                                                                                                                      <p>
                                                                                                                                                                                                                                        <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                        <tr>
                                                                                                                                                                                                                                          <td>
                                                                                                                                                                                                                                            Quote
                                                                                                                                                                                                                                          </td>
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          <td>
                                                                                                                                                                                                                                            UnaryExpression
                                                                                                                                                                                                                                          </td>
                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          <td>
                                                                                                                                                                                                                                            <pre><span style="color: blue">int </span>i = 3, j = 2;

Expression<Func<int>> inner = () => i * j; var quoted = Expression.Quote(inner); Expression<Func<Expression<Func<int>>>> example = Expression.Lambda<Func<Expression<Func<int>>>>(quoted);

                                                                                                                                                                                                                                            <p>
                                                                                                                                                                                                                                              <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                              <tr>
                                                                                                                                                                                                                                                <td>
                                                                                                                                                                                                                                                  RightShift
                                                                                                                                                                                                                                                </td>
                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                <td>
                                                                                                                                                                                                                                                  BinaryExpression
                                                                                                                                                                                                                                                </td>
                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                <td>
                                                                                                                                                                                                                                                  <pre><span style="color: blue">int </span>i = 8;

Expression<Func<int>> example = () => i >> 1;

                                                                                                                                                                                                                                                  <p>
                                                                                                                                                                                                                                                    <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                    <tr>
                                                                                                                                                                                                                                                      <td>
                                                                                                                                                                                                                                                        Subtract
                                                                                                                                                                                                                                                      </td>
                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                      <td>
                                                                                                                                                                                                                                                        BinaryExpression
                                                                                                                                                                                                                                                      </td>
                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                      <td>
                                                                                                                                                                                                                                                        <pre><span style="color: blue">int </span>i = 8, j = 5;

Expression<Func<int>> example = () => i - j;

                                                                                                                                                                                                                                                        <p>
                                                                                                                                                                                                                                                          <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          <tr>
                                                                                                                                                                                                                                                            <td>
                                                                                                                                                                                                                                                              SubtractChecked
                                                                                                                                                                                                                                                            </td>
                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                            <td>
                                                                                                                                                                                                                                                              BinaryExpression
                                                                                                                                                                                                                                                            </td>
                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                            <td>
                                                                                                                                                                                                                                                              <pre><span style="color: blue">int </span>i = 8, j = 5;

Expression<Func<int>> example = () => checked(i - j);

                                                                                                                                                                                                                                                              <p>
                                                                                                                                                                                                                                                                <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                <tr>
                                                                                                                                                                                                                                                                  <td>
                                                                                                                                                                                                                                                                    TypeAs
                                                                                                                                                                                                                                                                  </td>
                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                  <td>
                                                                                                                                                                                                                                                                    UnaryExpression
                                                                                                                                                                                                                                                                  </td>
                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                  <td>
                                                                                                                                                                                                                                                                    <pre><span style="color: blue">var </span>c = <span style="color: blue">new </span><span style="color: #2b91af">Customer </span>{Name = <span style="color: #a31515">"Bob"</span>};

Expression<Func<Person>> example = () => c as Person;

                                                                                                                                                                                                                                                                    <p>
                                                                                                                                                                                                                                                                      <a href="http://11011.net/software/vspaste"></a></td> </tr> 
                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                      <tr>
                                                                                                                                                                                                                                                                        <td>
                                                                                                                                                                                                                                                                          TypeIs
                                                                                                                                                                                                                                                                        </td>
                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                        <td>
                                                                                                                                                                                                                                                                          TypeBinaryExpression
                                                                                                                                                                                                                                                                        </td>
                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                        <td>
                                                                                                                                                                                                                                                                          <pre><span style="color: blue">var </span>c = <span style="color: blue">new </span><span style="color: #2b91af">Customer </span>{Name = <span style="color: #a31515">"Bob"</span>};

Expression<Func<bool>> example = () => c is int;

                                                                                                                                                                                                                                                                          <p>
                                                                                                                                                                                                                                                                            <a href="http://11011.net/software/vspaste"></a></td> </tr> </tbody> </table> 
                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                            <p>
                                                                                                                                                                                                                                                                              This is only for C# 3.0, the .NET 4.0 list should grow quite a bit.
                                                                                                                                                                                                                                                                            </p>
ExpressionType
Add