title: Combine two Dictionaries with LINQ
body: <p>My question has been flagged as a possible duplicate of this question: <a href="https://stackoverflow.com/questions/712927/how-to-add-2-dictionary-contents-without-looping-in-c-sharp">How to combine two dictionaries without looping?</a></p>
  
  <p>I believe my question is different because I am asking how to combine two dictionaries in a particular way:  I want all items from Dictionary1 plus all items from Dictionary2 that are not in (ie the key does not exist) in Dictionary1.</p>
  
  <p>I have two dictionaries like this:</p>
  
  <pre><code>var d1 = new Dictionary&lt;string,object&gt;();
  var d2 = new Dictionary&lt;string,object&gt;();
  
  d1["a"] = 1;
  d1["b"] = 2;
  d1["c"] = 3;
  
  d2["a"] = 11;
  d2["e"] = 12;
  d2["c"] = 13;
  </code></pre>
  
  <p>I would like to combine them into a new Dictionary (technically, it does not have to be a dictionary, it could just be a sequence of <code>KeyValuePairs</code>) such that the output contains all of the <code>KeyValuePairs</code> from d1 and only the KeyValuePairs from <code>d2</code> whose Key does not appear in <code>d1</code>.</p>
  
  <p>Conceptually:</p>
  
  <pre><code>var d3 = d1.Concat(d2.Except(d1))
  </code></pre>
  
  <p>But that is giving me all of the elements from d1 and d2.</p>
  
  <p>Seems like it should be obvious, but I must be missing something.</p>