title: Predicates and OrderBy , Func
body: <p>I understand that predicates are delegate to function which return bool and take generic parameter, I understand that when I say:</p>
  
  <pre><code>mycustomer =&gt; mycustomer.fullname == 1
  </code></pre>
  
  <p>It actually means:</p>
  
  <pre><code>delegate (Customer mycustomer)
  {
    return mycustomer.fullName == "John";
  }
  </code></pre>
  
  <p>The paramter I'm passing in when I pass this lambda expression is:</p>
  
  <p><code>public delegate bool Criteria&lt;T&gt;(T value)</code> which is natively called Predicate</p>
  
  <p>But what I don't understand is what it means when I say <code>mycustomer=&gt;mycustomer.fullname</code></p>
  
  <p>In <code>customers.OrderBy(mycustomer=&gt;mycustomer.fullname);</code></p>
  
  <p>How do I implement something like <code>OrderBy</code>? How do I tell a method which property to do action on ! like the previous example?</p>
  
  <p>By example here is a case I want to make a method which get all values of a collection for a specific property :</p>
  
  <pre><code>list&lt;string&gt; mylist = customers.GetPropertyValues(cus=&gt;cus.Fullname);
  </code></pre>
  
  <p>Thanks in advance.</p>