Linq GroupJoin with DefaultIfEmpty
<p>I have this GroupJoin:</p>

<pre><code>var groupjoin = cData.GroupJoin(
            aData,
            c =&gt; c.Id,
            a =&gt; a.Id,
            (c, joined) =&gt; new { c, a = joined.DefaultIfEmpty() })
            .ToList();
</code></pre>

<p>In my test data, there are NO matches.  So, I have this code:</p>

<pre><code>            var difference = groupjoin.FirstOrDefault(g =&gt; 
            g.a == null);
</code></pre>

<p>I was expecting <code>difference</code> to be an anonymous object with a "c" property that was an object from <code>cData</code>, and an "a" property that was null.</p>

<p>However, <code>g.a == null</code> is never true, so <code>FirstOrDefault</code> gives me a null for <code>difference</code>.  <code>g.a</code> is, in fact, a <code>DefaultIfEmptyIterator</code> and <code>g.a.ToList()</code> gives me a count of 1, and <code>g.a.ToList[0] == null</code> is true.</p>

<p>What have I done wrong here?</p>