姐姐,哥们,程序员,大师。
根据搜索元素的运行时间,很多文章建议使用 HashSet 和 List 来添加元素。
如何像这样更改或改进我的代码:
static List<string> getDBList(string DBname)
{
List<string> listWords = new List<string>();
string[] files;
try
{
files = Directory.GetFiles(@"dbase/", DBname);
foreach (string file in files)
foreach (string line in File.ReadAllLines(file))//doubt
listWords.Add(line.Trim().ToUpperInvariant());
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return new List<string> { };
}
return listWords;
}
然后...
//MAIN PROGRAM
string allInput = rtbInput.Text;
List<string> splitString = new List<string>.Split(new char[] { ' ', '\t', etc...});
List<int> AllIndexes = new List<int>();
HashSet<string> nounList = new HashSet<string>(getDBList("nounList.txt"));//doubt
int startIndexes = 0;
foreach (string s in splitString)
{
if (s.Trim() != "")
{
string word = s.Trim();
if(!(nounList.Contains(word.ToUpperInvariant()))) //doubt if not found, color it
{
tbTest.Text += word + " ";
//index to begin color the text
AllIndexes = WordsIndex(word, startIndexes);
foreach (int item in AllIndexes) //Coloring all appearance of the word.
{
tbSeeIndex.Text += Convert.ToString(" " + item + " ");
rtbInput.Select(item, word.Length);
startIndexes = item + word.Length;
rtbInput.SelectionColor = Color.Red;
}
tbL.Text += Convert.ToString(" " + startIndexes + " ");
}
}
}
}
如果我使用输入表单文件需要很长时间。
在名词列表(90963 字)示例中:
书
椅
铅笔
等...
我想使用此代码根据字符串值执行搜索。因为我不熟悉。让我通过你的例子来学习。我只是业余的。:) :) :) 非常感谢。干杯...