Получить слово из списка которое встречается больше всего раз

JustSmile

Client
Регистрация
19.01.2016
Сообщения
116
Благодарностей
3
Баллы
18
Здраствуйте! Как можно через C# получить слово из списка которое встречается больше всего и сохранить его в переменную?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 179
Баллы
113
Здраствуйте! Как можно через C# получить слово из списка которое встречается больше всего и сохранить его в переменную?
Здравствуйте.
Здесь были обсуждения с решениями похожей задачи:
Остается только дополнить подсчетом строк списка с дублями.
 

JustSmile

Client
Регистрация
19.01.2016
Сообщения
116
Благодарностей
3
Баллы
18
Еще бы понимать как) а то уже часов 6 наверно решаю проблему, уже нейронку замучал)
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93
Здраствуйте! Как можно через C# получить слово из списка которое встречается больше всего и сохранить его в переменную?
Набросал такой вот код
C#:
var text = "Здраствуйте! Как можно через C# получить слово из списка которое встречается больше всего и сохранить его в переменную? можно больше слово списка слово";
var lst = text.Split(' ').ToList();

var words = lst
    .GroupBy(g => g)
    .Select(w => new {Word = w.Key, Count = w.Count() })
    .OrderByDescending(c => c.Count);

var word = words.First();

return word;
//word => "слово" 3шт. макс количество
 
  • Спасибо
Реакции: samsonnn и JustSmile

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 802
Благодарностей
1 474
Баллы
113
Здраствуйте! Как можно через C# получить слово из списка которое встречается больше всего и сохранить его в переменную?






C#:
List<string> list = new List<string>(project.Lists["list"]);
Dictionary<string, int> wordCounts = new Dictionary<string, int>();
  foreach (string str in list){
     string[] words = str.ToLower().Split(new[] { ' ', '.', ',', '!', '?' }, StringSplitOptions.RemoveEmptyEntries);
        foreach (string word in words){
           if (wordCounts.ContainsKey(word))
            wordCounts[word]++;
           else
            wordCounts[word] = 1;
            }
        }
string mostFrequentWord = wordCounts.OrderByDescending(pair => pair.Value).First().Key;
return mostFrequentWord;
 
  • Спасибо
Реакции: Dmitriy Ka и JustSmile

JustSmile

Client
Регистрация
19.01.2016
Сообщения
116
Благодарностей
3
Баллы
18
Спасибо большое! 2 вариант самый лучший!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)