private void SyncImages(TagsCollectionBase tags, string[] images) { var tagsToRemove = tags.Where(t => t.Key.StartsWith(FeatureAttributes.IMAGE_URL) && images.Contains(t.Value) == false).ToArray(); foreach (var tag in tagsToRemove) { tags.RemoveKeyValue(tag); } var imagesToAdd = images.Where(i => tags.Any(t => t.Value == i) == false).ToList(); foreach (var imageUrl in imagesToAdd) { if (!tags.ContainsKey(FeatureAttributes.IMAGE_URL)) { tags[FeatureAttributes.IMAGE_URL] = imageUrl; continue; } int imageIndex = 1; while (tags.ContainsKey(FeatureAttributes.IMAGE_URL + imageIndex)) { imageIndex++; } tags[FeatureAttributes.IMAGE_URL + imageIndex] = imageUrl; } }