title: Group objects in List<T> by id and order the List by duplicateCount for each object
body: <p>I have multiple List with objects. But some of the items in one list, also exists in other lists. 
  My question is how can I merge all the items of all the lists into one final list. So there are no duplicates in that list and the items are sorted on the number of duplicates each item had in the different lists.</p>
  
  <p>Example</p>
  
  <p>List1: [users1, user2, user3, user4]<br>
  List2: [user2, user4, user5]<br>
  List3: [user4,user6]</p>
  
  <p>result: [user4, user2, user1, user3, user5, user6]</p>
  
  <p>(the order of users with the same count doesn't matter)</p>
  
  <p>I tried something like this:</p>
  
  <pre><code>List&lt;User&gt; finalResults = list1.Concat(list2).ToList&lt;User&gt;();
  
          var q = finalResults.GroupBy(x =&gt; x.id)
                      .Select(g =&gt; new User { name = g.First().name, count = g.Count() })
                      .OrderByDescending(usr =&gt; usr.count);
  
          finalResults = q.ToList&lt;User&gt;();
  </code></pre>
  
  <p>but the result is an empty list.</p>
  
  <p>Thanks in advance!</p>