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