public KeyedList Combine(KeyedList other) { var otherKeys = new HashSet <string>(other.keyedValues.Where(k => k.HasKey()).Select(k => k.Key).Distinct()); var uniqueKeyedVariables = keyedValues.Where(k => !k.HasKey() || !otherKeys.Contains(k.Key)).ToList(); return(new KeyedList(uniqueKeyedVariables.Concat(other.GetValues()).ToArray())); }