Сортировка слов по количеству букв в C#

В этом примере сортируются слова по количеству букв. Он подсчитывает количество отдельных букв в списке слов и отображает слова и их подсчеты, отсортированные по счетам. Программа замечательно проста.

Следующий код показывает, как программа строит и отображает список счетчиков букв.

// Поиск и отображение слов и отсчетов.
private void Form1_Load(object sender, EventArgs e)
{
    string[] words = {
        "Alabama",
        "Alaska",
        ...
        "Wyoming"
    };

    // Получаем список, содержащий уникальные буквы и имя каждого слова.
    var count_query =
        from string word in words
        orderby word.ToCharArray().Distinct().Count()
        select word.ToCharArray().Distinct().Count() + ", " + word;
    lstLetterCounts.DataSource = count_query.ToArray();
}

Код сначала определяет массив слов. Затем он создает запрос LINQ, который выполняет большую часть работы.

Запрос пересекает слова в массиве. Для каждого слова он вызывает метод string класса ToCharArray для преобразования слова в массив символов. Затем он вызывает Distinct, чтобы получить различные буквы в массиве. Наконец, он вызывает Count, чтобы узнать, сколько там разных букв. Он использует предложение orderby, чтобы упорядочить результаты по этому значению.

Запрос выбирает один и тот же счетчик букв плюс запятую плюс исходное слово. Результатом является то, что запрос возвращает строки, содержащие различное количество букв каждого слова и слово.

Источник: http://csharphelper.com/blog/2016/10/sort-words-by-letter-count-in-c/

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