ЮЛ
Юська Лютикова

Найти самые часто встречающиеся слова в строке

Есть варианты получше этого?

class Slovo
{
public string Word;
public int Count;
public Slovo(string slovo, int kolichestvo)
{
Word = slovo;
Count = kolichestvo;
}
}

class Program
{
static void Main(string[] args)
{
string s = "Один два четыре восемь число один и два дают вместе восемь а один умножить на один будет один";
List word = new List();
List count = new List();
string[] word_collection = s.ToLower().Split(' ');
foreach (string str in word_collection) if (!word.Contains(str))
{
word.Add(str);
count.Add(1);
}
else count[word.IndexOf(str)]++;
List spisok = new List();
for (int i = 0; i < word.Count; i++) spisok.Add(new Slovo(word, count));
spisok.Sort((a, b) => b.Count - a.Count);
foreach (Slovo slovo in spisok) Console.WriteLine(slovo.Word.PadRight(12) + slovo.Count.ToString());
Console.ReadKey();
}
}

СЯ
Светлана Яганина

Так не лучше?

using System;
using System.Linq;
using System.Collections.Generic;

class Program {
static void Main(string[] args) {
var s = "один два четыре восемь число один и два дают вместе восемь а один умножить на один будет один";
var dict = new Dictionary();
foreach (var w in s.Split(' ')) {
if (dict.ContainsKey(w)) ++dict[w]; else dict.Add(w, 1);
}
foreach (var kv in dict.OrderByDescending(k => k.Value)) {
Console.WriteLine(kv.Key + ": " + kv.Value);
}
}
}

Похожие вопросы
php Как найти слово в строке файла и вывести эту строку полностью? Пример внутри
Как в тексте найти строку содержащию выбранное слово? Делфи.
Дано строка, состоящих из русских слов разделеных пробелами (одним или несколькими) Найти длину самого краткого слова
Помогите. Как найти самое длинное слово в строке на С?
Сортировка по части строки
как найти местоположение строки?
Ввести строку, вывести самое длинное слово. с++. Ввести строку, вывести самое длинное слово. с++
Что означает "/#!/" в адресной строке? Часто встречается, например, в Твиттере, но там особой роли не играет.
Найти количество слов в строке. Delphi
С++ работа со строками как в строке найти и вывести самое короткое слово???