Приветствую всех! Сегодня мы рассмотрим решение одно задачи, по условию который нам дан массив предложений, который имеет дубликаты. Нам необходимо разбить строки на слова, удалить среди них дубликаты, изменить регистр слов, и произвести сортировку текста в алфавитном порядке. И так рассмотрим пример решения такой задачи, все строки я за комментировал и у вас не должно возникнуть никаких проблем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
static void Main(string[] args) { var vocabulary = GetSortedWords( "Hello, hello, hello, how low", "", "With the lights out, it's less dangerous", "Here we are now; entertain us", "I feel stupid and contagious", "Here we are now; entertain us", "A mulatto, an albino, a mosquito, my libido...", "Yeah, hey" ); foreach (var word in vocabulary) Console.WriteLine(word); Console.ReadKey(); } public static string[] GetSortedWords(params string[] textLines) { return textLines.SelectMany(x => Regex.Split(x, @"\W+"))//разбиваем текст на слова .Select(x => x.ToLower()) //изменяем регистр слов на нижний .Where(i => i != "") //ищем пустые строки .OrderBy(x => x)//производим сортировку .Distinct().ToArray(); //производим удаление всех дубликатов и все это упаковываем в массив string } |
Как видно из решения, мы создали метод который принимает массив строк, который с помощью линков и регулярных выражений мы возвращаем готовый массив слов, который отсортирован и без дубликатов слов, в нижнем регистре.
Спасибо, получилось