title: Left Join List<t> with Datatable -Linq
body: <p>I have a <code>List&lt;t&gt;</code> and a <code>DataTable</code>. By using Linq I want to retrieve the list of products <code>List&lt;Product&gt;</code> that do not exists in the <code>DataTable</code>.</p>
  
  <p>List of <code>product</code>(<code>List&lt;Product&gt;</code>)</p>
  
  <pre><code>Number    TechnicalDescription
  1         This is the A item
  2         This is the B item
  3         This is the Z item
  </code></pre>
  
  <p>Table</p>
  
  <pre><code>Name         Description
  A            This is the A item
  B            This is the B item
  C            This is the C item
  D            This is the D item
  </code></pre>
  
  <p>Result: <code>List&lt;Product&gt;</code></p>
  
  <pre><code>Number    TechnicalDescription
  3         This is the Z item
  </code></pre>
  
  <p><a href="http://sqlfiddle.com/#!3/3845d/9" rel="nofollow">Here</a>  is the fiddler SQL example of what I need, but using Linq.</p>
  
  <p>I have tried this but does not work.</p>
  
  <pre><code>List&lt;Product&gt; productList = THE_LIST;
  DataTable dtProducts = THE_TABLE;
  
  var myNewList = from e in productList
                   join p in dtProducts.AsEnumerable()
                      on e.TechnicalDescription.ToLower()
                      equals p.Field&lt;string&gt;("Description").ToLower()
                      into productGroup
                   from p in productGroup.DefaultIfEmpty(new { ID = "0", TechnicalDescription = "" })
                   where p != null
                   select new
                   {
                       ID = e.ID,
                       TechnicalDescription = e.TechnicalDescription
                   };
  </code></pre>