Список уникальных слов в текстовом файле в 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 для удаления дубликатов.
