循环一个字符串并检查字典

时间:2017-11-07 19:58:15

标签: c# arrays loops dictionary

我有一个文件,我正在使用StreamReader阅读,然后将其分成单个单词,这些单词将根据dictionary进行检查。我能够将文本拆分并循环遍历,但是循环不会结束,它会保持循环并且不会在文件末尾停止。见下面的代码;

private void Load_File_Contents_BTN_Click(object sender, RoutedEventArgs e)
    {
        string FilePath = File_Path_TB.Text;

        //Implements Dictionary
        var fileParser = new FileParser(@"C:\textwords.csv");
        fileParser.Parse();

        //handles reading, splitting and searching of file
        FileStream inFile = new FileStream(FilePath, FileMode.Open, FileAccess.Read);
        StreamReader readFile = new StreamReader(inFile);

        char[] stringSep = { ',', ' ', '!', '?', '.' };

        string[] isInFile = readFile.ReadToEnd().Split(stringSep);

        for (int i = 0; i < isInFile.Length; i++)
        {
            while (i < isInFile.Length)
            {
                foreach (string s in isInFile)
                {
                    if (fileParser.IsWordAvailable(s.ToString()))
                    {
                        MessageBox.Show("Match found");
                        Console.WriteLine(s.ToString());// displays word checked in console
                    }
                    else
                    {
                        MessageBox.Show("No match");
                        Console.WriteLine(s.ToString());// displays word checked in console
                    }
                }
            }
        }
    } 

我不确定我在这里错过了什么。

任何见解都将不胜感激

干杯,

1 个答案:

答案 0 :(得分:3)

while循环期望在i >= isInFile.Length时终止,i永远不会在while循环块内更新isInFile。无限循环。

事实上,您似乎试图以三种不同的方式迭代forwhileforeachforeach。您可能只需要viewDidLoad循环。