private void UpdateCustomAttributeValues(CustomAttribute attribute, IEnumerable <object> values) { var attributeValues = attribute.Values ?? new object[0]; var valuesToAdd = values.Where(v => !attributeValues.Contains(v)).ToArray(); var valuesToRemove = attributeValues.Where(v => !values.Contains(v)).ToArray(); if (valuesToRemove.Any()) { valuesToRemove .ToList() .ForEach(v => attribute.RemoveValue(v)); } if (valuesToAdd.Any()) { valuesToAdd .ToList() .ForEach(v => attribute.AddValue(v)); } }