using System.Collections.Generic;
public static void Main()
var d1 = new Dictionary<string,string>{
var d2 = new Dictionary<string,string>{
d1 = d1.Union(d2, new KeyEqualityComparer<string,string>()).ToDictionary(a => a.Key, b => b.Value);
public class KeyEqualityComparer<T1, T2> : IEqualityComparer<KeyValuePair<T1, T2>>
public bool Equals(KeyValuePair<T1, T2> x, KeyValuePair<T1, T2> y)
return x.Key.Equals(y.Key);
public int GetHashCode(KeyValuePair<T1, T2> obj)
return obj.Key.GetHashCode();