2016-02-19 4 views
-5

У меня есть список слов, которые являются би-граммовый в качестве примера:граф равные строки в списке строку и сделать их уникальными

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#?

+4

Все, что вы пробовали до сих пор? – MadOX

+0

Привет, добро пожаловать в StackOverflow. Как правило, это хорошая идея, чтобы объяснить или продемонстрировать, что вы уже пробовали. Как вы можете видеть из-за понижательных голосов, некоторые люди получают действительно боль, когда вы этого не делаете. При этом этот вопрос кажется довольно прямым. Я не уверен, что демонстрация того, что вы уже пробовали, еще больше осветит проблему - возможно, я ошибаюсь. Во всяком случае, нисходящие голоса действительно кажутся необоснованными ИМО. –

+0

Почему 'повторять приветствуем'' '' '' '' '' '' 'и' повторить' и 'welcome' появились раньше? Какое правило здесь? – Ian

ответ

0

Это может быть сделано с 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
repeat welcome, 1

+0

Как я могу вернуть «var groups»? если я пишу: public var countNgram (int ngram) {...} это подсказывает мне ошибку, которая должна быть локальной. Какой тип я должен преобразовать, а затем вернуть? –

+0

Ключевое слово 'var' - это неявно типизированная переменная, то есть компилятор вводит тип: https://msdn.microsoft.com/en-us/library/bb384061.aspx. Неявные переменные могут использоваться только в локальной области, как говорит ошибка. Вы должны вернуть явный тип из функции. В этом конкретном случае явным типом 'var groups' является' IEnumerable > ', но это отвратительно, поэтому вы, вероятно, захотите преобразовать это в нечто другое - возможно, ваш собственный класс .. –

 Смежные вопросы

  • Нет связанных вопросов^_^