класс вывода наиболе часто встречающихся 10 строк в тексте

C Sharp > класс вывода наиболе часто встречающихся 10 строк в тексте
25.11.2016 17:18:45



Статья:

 
 
GetMaxUsage метод получения  строки , которая  содержит 10 наиболее повторяющихся  слов в тексте
 
 
 
class MetaKey
{
// класс вывода наиболе часто встречающихся 10 строк в тексте
List<LogEntry> log ;
public bool FiilDictionary(string text)
{
// заполнение слов в LIST
if (text == null) return false;
log = new List<LogEntry>();
string[] splits = { ".", " ", ",", ":", ";", "<", ">", "!", "@", "#", "$", "%", "^", "&", "+", ")", "(", "{", "}", "[", "]", "\n", "\r", "<i>", Environment.NewLine };
var words = text.Split(splits, StringSplitOptions.RemoveEmptyEntries);
 
foreach (var word in words)
{
if (word.Length>6)
log.Add(new LogEntry() { TAG = word });
}
 
return true;
}
 
public string GetMaxUsage(string text)
{
// получение 10 наиболее встречающихся слов
if (!FiilDictionary(text)) return null;
string Mz="";
 
var result = log.Select(x => x.TAG).GroupBy(x => x).OrderByDescending(x => x.Count()).Take(10);
foreach (var item in result)
{
if (item.Key.Length > 6)
Mz = Mz + "," + item.Key;
}
 
return Mz;
}
 
private class LogEntry
{
public string TAG { get; internal set; }
}
}