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 IEnumerable <string> GetOtherPerformers()
        {
            var _names = new List <string>();

            foreach (var mf in MusicFiles)
            {
                var list = mf.GetPerformers()
                           .Select(x => MusicOptions.ReplaceAlias(x))
                           .Except(new string[] { MusicOptions.ReplaceAlias(mf.Musician) }, comparer)
                ;
                _names.AddRange(list);
            }
            //names = names.Distinct(comparer).ToList();
            _names = _names.Distinct(comparer).ToList();
            var g1    = _names.GroupBy(x => x.GetLastName());
            var names = new List <string>();

            foreach (var item in g1)
            {
                if (!ComposerName.EndsWithIgnoreAccentsAndCase(item.Key))
                {
                    names.Add(item.OrderByDescending(x => x.Length).First());
                }
            }
            names = names
                    //.Distinct(comparer)
                    .OrderBy(x => x.GetLastName())
                    //.ThenBy(x => x)
                    .ToList();
            foreach (var orchestra in orchestras)
            {
                names = RemoveName(names, orchestra).ToList();
            }
            foreach (var conductor in conductors)
            {
                names = RemoveName(names, conductor).ToList();
            }

            return(names);
        }