private IEnumerable <string> RemoveDuplicateNames(IEnumerable <string> names) { var comparer = new AccentAndCaseInsensitiveComparer(); var lastNames = names.Select(x => x.GetLastName()).Distinct(comparer); var namesToRemove = new List <string>(); foreach (var ln in lastNames) { var commonLastNames = names.Where(x => x.EndsWithIgnoreAccentsAndCase(ln)); if (commonLastNames.Count() > 1) { var longestLength = commonLastNames.Max(x => x.Length); namesToRemove.AddRange(commonLastNames.Where(x => x.Length < longestLength)); } } namesToRemove.AddRange(names.Where(x => ComposerName.EndsWithIgnoreAccentsAndCase(x))); return(names.Except(namesToRemove));//.ToList(); }
private string BuildPerformerCSV() { var comparer = new AccentAndCaseInsensitiveComparer(); try { var names = new List <string>(); names.AddRange(otherPerformers); //names.AddRange(orchestras); //names.AddRange(conductors); return(string.Join(", ", names)); } catch (Exception) { Debugger.Break(); throw; } }