Список уникальных слов в текстовом файле в C#
В этом примере используются регулярные выражения и LINQ для отображения уникальных слов, содержащихся в текстовом файле на C#.
Когда вы вводите имя файла и выбираете List List, выполняется следующий код.
// Список слов в файле. private void btnListWords_Click(object sender, EventArgs e) { // Получить текст файла. string txt = File.ReadAllText(txtFile.Text); // Использование регулярных выражений для замены символов // это не буквы или числа с пробелами. Regex reg_exp = new Regex("[^a-zA-Z0-9]"); txt = reg_exp.Replace(txt, " "); // Разделить текст на слова. string[] words = txt.Split( new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // Используйте LINQ для получения уникальных слов. var word_query = (from string word in words orderby word select word).Distinct(); // Отображение результата. string[] result = word_query.ToArray(); lstWords.DataSource = result; lblSummary.Text = result.Length + " words"; }
Вначале код File.ReadAllText используется для копирования текста файла в строку.
Далее код использует регулярные выражения для замены небуквенных и нецифровых символов пробелами. Он использует шаблон [^ a-zA-Z0-9]. ^ означает «не следующие символы». Часть a-zA-Z0-9 означает любую строчную или прописную букву или цифру. Код использует метод Regex объекта Replace для замены символов, которые соответствуют шаблону с символом пробела.
Затем код использует Split, чтобы разбить текст на массив слов, удалив любые дубликаты.
В коде используется LINQ, чтобы выбрать все слова из массива и отсортировать их. Он использует метод Distinct для удаления дубликатов.