private List <Tag> CreateTags(Thread thread) { if (string.IsNullOrEmpty(_tagString.Trim(',')) || !_forumManager.ValidateAccessSecurityAction(ForumAction.TagCreate, thread)) { return(new List <Tag>()); } List <Tag> list; List <Tag> existingTags = ForumDataProvider.GetAllTags(TenantProvider.CurrentTenantID); var newTags = (from tagName in _tagString.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) where !existingTags.Exists(et => et.Name.Equals(tagName, StringComparison.InvariantCultureIgnoreCase)) select new Tag() { ID = 0, Name = tagName }).Distinct(new TagComparer()); var exTags = from exTag in existingTags from tagName in _tagString.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) where tagName.Equals(exTag.Name, StringComparison.InvariantCultureIgnoreCase) select exTag; list = new List <Tag>(newTags.ToArray()); list.AddRange(exTags.ToArray()); return(list); }