public static EntryList Merge(EntryList a, EntryList b) { var uniq = new Dictionary <Tuple <string, string, int>, Entry>(); foreach (var e in a) { uniq[e.VersionedKey] = e; } foreach (var e in b) { uniq[e.VersionedKey] = e; } EntryList result = new EntryList(); result.AddRange(uniq.Values); return(result); }