title: How in the Blank is this happening?
body: <p>Having to do alot of stuff to get IGrouping Working in MVC4 c#. Below are my queries</p>
  
  <pre><code>        var a = (from r in db.SomeProcedure(Id)
                         select new MyClass1
                         {
                             Id= r.Id,
                             Title = r.Title,
                             Name = r.Name,
                             Number = r.Number,
                             Product = r.Product,
                             OtherId = r,OtherId
                         }).ToList();
  </code></pre>
  
  <p>//The above returns 13 results as expected</p>
  
  <pre><code>        var b = a.GroupBy(x =&gt; x.Title ?? "unknown", c =&gt; new MyClass2
          {
              Title2 = c.Title,
              Id2 = c.Id,
              OtherId2 = c.OtherId,
              Number2 = c.Number
          });
  </code></pre>
  
  <p>//The above returns 2 as expected</p>
  
  <pre><code>        List&lt;MyClass1&gt; mClass1 = a;
          List&lt;IGrouping&lt;string,MyClass2&gt;&gt; mClass2 = b.ToList();
  </code></pre>
  
  <p>//The 2 above are the same as expected</p>
  
  <p>Finally</p>
  
  <pre><code>        mPrivateClass1.Clear();
          mClass1 .ForEach(o =&gt; mPrivateClass1.Add(o));
  </code></pre>
  
  <p>//The above is the 13 as expected</p>
  
  <pre><code>        mPrivateClass2.Clear();
          mClass2 .ForEach(p =&gt; mPrivateClass2.AddRange(p));
  </code></pre>
  
  <p>//The above is returning 13 not 2 as expected.  I could not use Add(p) it gives Generic List&lt;> .Add has some invalid arguments.</p>
  
  <pre><code>mPrivateClass1 is a:
   private List&lt;MyClass1&gt; mPrivateClass1 = new List&lt;MyClass1&gt;();
  
  mPrivateClass2 is a:
   private List&lt;MyClass2&gt; mPrivateClass2 = new List&lt;MyClass2&gt;();
  </code></pre>