谁能拯救我? 我有以下法典:
private List<string> GenerateTerms(string[] docs)
{
List <string> uniques = new List<string>();
for (int i = 0; i < docs.Length; i++)
{
string[] tokens = docs[i].Split( );
List<string> toktolist = new List<string>(tokens.ToList());
var query = toktolist.GroupBy(word => word)
.OrderByDescending(g => g.Count())
.Select(g => g.Key)
.Take(20000);
foreach (string k in query)
{
if (!uniques.Contains(k))
uniques.Add(k);
}
}
return uniques;
}
它将根据最频繁程度从文件数目中产生术语。 i 采用了相同的程序。 在这两种情况下,花费了440毫秒。 但令人惊讶的是,在使用程序时,如在以下法典中使用阵列清单。
private ArrayList GenerateTerms(string[] docs)
{
Dictionary<string, int> yy = new Dictionary<string, int>();
ArrayList uniques = new ArrayList();
for (int i = 0; i < docs.Length; i++)
{
string[] tokens = docs[i].Split( );
yy.Clear();
for (int j = 0; j < tokens.Length; j++)
{
if (!yy.ContainsKey(tokens[j].ToString()))
yy.Add(tokens[j].ToString(), 1);
else
yy[tokens[j].ToString()]++;
}
var sortedDict = (from entry in yy
orderby entry.Value descending
select entry).Take(20000).ToDictionary
(pair => pair.Key, pair => pair.Value);
foreach (string k in sortedDict.Keys)
{
if (!uniques.Contains(k))
uniques.Add(k);
}
}
return uniques;
}
它花费了350毫秒。 t光清单是否比清单和字典要慢? 请允许我以这种紧张态度来挽救我。