title: Using Except() on a Generic collection
body: <p>I have asked this <a href="https://stackoverflow.com/questions/994117/using-first-with-a-generic-collection-through-reflection">question</a> about using the a Linq method that returns one object (First, Min, Max, etc) from of a generic collection. 
  I now want to be able to use linq's Except() method and I am not sure how to do it. Perhaps the answer is just in front on me but think I need help.
  <br>
  I have a generic method that fills in missing dates for a corresponding descriptive field. This method is declared as below:</p>
  
  <pre><code>public IEnumerable&lt;T&gt; FillInMissingDates&lt;T&gt;(IEnumerable&lt;T&gt; collection, string datePropertyName, string descriptionPropertyName)
      {
         Type type = typeof(T);
         PropertyInfo dateProperty = type.GetProperty(datePropertyName);
         PropertyInfo descriptionProperty = type.GetProperty(descriptionPropertyName);
         ...
      }
  </code></pre>
  
  <p>What I want to accomplish is this. datePropertyName is the name of the date property I will use to fill in my date gaps (adding default object instances for the dates not already present in the collection). If I were dealing with a non-generic class, I would do something like this:<br></p>
  
  <pre><code>foreach (string description in descriptions)
  {
      var missingDates = allDates.Except(originalData.Where(d =&gt; d.Description == desc).Select(d =&gt; d.TransactionDate).ToList());
  ...
  }
  </code></pre>
  
  <p>But how can I do the same using the generic method FillInMissingDates with the dateProperty and descriptionProperty properties resolved in runtime? </p>