Сортировка слов по количеству букв в 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, чтобы упорядочить результаты по этому значению.
Запрос выбирает один и тот же счетчик букв плюс запятую плюс исходное слово. Результатом является то, что запрос возвращает строки, содержащие различное количество букв каждого слова и слово.