title: Merging collections using LINQ while overriding rows with same ID
body: <p>I got two collections of objects.</p>
  
  <p>For example:</p>
  
  <pre><code>List&lt;Foo&gt; firstFoos = new List&lt;Foo&gt;();
  List&lt;Foo&gt; secondFoos = new List&lt;Foo&gt;();
  
  firstFoos.Add(new Foo() { Id = 1, ValueA = 10, ValueB = 15 });
  firstFoos.Add(new Foo() { Id = 2, ValueA = 20, ValueB = 25 });
  firstFoos.Add(new Foo() { Id = 3, ValueA = 30, ValueB = 35 });
  firstFoos.Add(new Foo() { Id = 4, ValueA = 40, ValueB = 45 });
  
  secondFoos.Add(new Foo() { Id = 1, ValueA = 100, ValueB = 150 });
  secondFoos.Add(new Foo() { Id = 2, ValueA = 200, ValueB = 250 });
  </code></pre>
  
  <p>Using LINQ, how can I merge the two collection overriding <code>firstFoos</code> by <code>secondFoos</code> which have the same ID?</p>
  
  <p>Expected result is:</p>
  
  <pre><code>|   Id    | ValueA | ValueB |
  |---------|--------|--------|
  |    1    |   100  |   150  |
  |    2    |   200  |   250  |
  |    3    |   30   |   35   |
  |    4    |   40   |   45   |
  </code></pre>
  
  <p>Please note that this example case has only two value columns (<code>ValueA</code> and <code>ValueB</code>), but an actual case could have many more.</p>