title: Delegate in a where clause
body: <p>I can define a delegate and write the query like this.</p>
  
  <pre><code>Func&lt;string, bool&gt;   filter  = s =&gt; s.Length == 5;
  
  IEnumerable&lt;string&gt; query = names.Where(filter)                                  
                                   .Select(x =&gt; x.ToUpper());
  </code></pre>
  
  <p>My question is, if the <code>Func&lt;T, TResult&gt;</code> is a delegate taking a string as argument and returning a bool, why cannot I say:</p>
  
  <pre><code>delegate bool D(string s);
  D d = new D(delegate(string s) { return s.Length == 1; });
  
  IEnumerable&lt;string&gt; query = names.Where(d).Select...
  </code></pre>
  
  <p>?</p>