Подсчитайте одинаковые строки в списке строк и сделайте их уникальными
У меня есть список слов, которые являются биграммами в качестве примера:
welcome guys
guys and
and ladies
ladies repeat
repeat welcome
welcome guys
Теперь я хочу посчитать равные строки и получить результат:
welcome guys, 2
guys and, 1
and ladies, 1
ladies repeat, 1
repeat welcome, 1
Как я могу сделать это в C#?
1 ответ
Решение
Это можно сделать с помощью Linq и GroupBy
функционировать довольно легко:
var input = new string[]
{
"welcome guys",
"guys and",
"and ladies",
"ladies repeat",
"repeat welcome",
"welcome guys"
};
var groups =
input
.GroupBy(x => x);
foreach (var g in groups)
{
Console.WriteLine("{0}, {1}", g.Key, g.Count().ToString());
}
добро пожаловать, ребята, 2
ребята а, 1
и дамы, 1
дамы повторяют, 1
повторить добро пожаловать, 1