统计单词数量并按个数多少降序排列
时间:2010-12-19 来源:huaxiaoyao
代码
//存储单词的数量 和 单词的内容
struct myword
{
public string word { get; set; }
public int count { get; set; }
public override string ToString()
{
return string.Format("{0}:{1}", word, count);
}
}
//计算单词个数
protected void countWords(string content)
{
List<myword> wordlist = new List<myword>();
MatchCollection mc = Regex.Matches(content, @"[a-zA-Z]+\b");
foreach (Match m in mc)
{
myword word = wordlist.Find((w) =>
{
return w.word.ToLower() == m.Value.ToLower();
});
if (word.count == 0)//如果是初次添加
{
wordlist.Add(new myword { word = m.Value, count = 1 });
}
else
{
wordlist.Remove(word);
wordlist.Add(new myword { word = m.Value, count = word.count + 1 });
}
}
//按count由高到低排序
wordlist.Sort(
(x, y) =>
{
return y.count.CompareTo(x.count);
}
);
wordlist.ForEach( w => Console.WriteLine(w) );
}
这次有一个问题就是我使用的是结构,而不是类,所以更新次数的时候有点问题。请高人指教。
相关阅读 更多 +