// Last wins implementation public void MergeWith(PortraitData other) { Sprites = Sprites.Concat(other.Sprites).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); PortraitTypes = PortraitTypes.Concat(other.PortraitTypes).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); Offsets = Offsets.Concat(other.Offsets).GroupBy(d => d.Key).ToDictionary(d => d.Key, d => d.Last().Value); }