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

Источник: http://csharphelper.com/blog/2015/01/list-unique-words-in-a-text-file-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector