2013-04-18 2 views
4

Если у меня длинная строка текста и вы хотите вытащить слова длиной более 4 символов и найти более четырех раз в строке, может ли LINQ сделать это?Может ли LINQ использоваться для вытягивания ключевых слов из строки?

+2

http://stackoverflow.com/questions/9879060/need-a-linq-query-to-find-string-items Ответ, похоже, что это будет трюк для вас. –

ответ

15

Вы можете быть в состоянии затянуть это, но я считаю, что это будет что-то эффект

var results = inputstring.Split() 
       .Where(word => word.Length > 4) 
       .GroupBy(word => word) 
       .Where(grp => grp.Count() > 4) 
       .Select(grp => grp.Key); 

Вы, конечно, нужно решить, как вы хотите иметь дело с какой-либо знаки препинания, которые могли бы присутствовать.

Так дали на вход

var inputstring = @"The quick brown fox jumped over the lazy dog 
       The quick brown fox jumped over the lazy dog 
       The quick fox jumped over the lazy dog 
       The quick fox jumped over the lazy dog 
       The quick brown fox jumped over the lazy dog"; 

Результаты содержат «быстрые» и «подскочили», потому что только другое слово больше, чем 4-х символов («коричневый») появились только 3 раза.

+0

Отлично, спасибо! – Chaddeus

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