0

我有一个While loop读作 aline的 a file.txt。我还有一个名为的方法,如果返回值为 ,则VerifyPhoto返回true/false我想转到下一项。我怎么能这样做?我试过了,但它只是把所有东西都留给了......while loopfalsebreakreturnform

while (!reader.EndOfStream)
  {
     if(VerifyPhoto(filed.matriculation) == false)
        {
          //go to the next line of the file.txt
        }
  }
4

6 回答 6

9

您可能想熟悉其他控制语句:继续

[编辑] 最新版本的文档:继续,谢谢 Jeppe。

于 2013-02-04T12:49:54.140 回答
1

continue;(还有一些使它成为 30 个字符)

于 2013-02-04T12:49:57.220 回答
0

根据您的实际代码,也许您可​​以简单地反转布尔测试,因此只有在VerifyPhoto返回时才执行某些操作true

while (...)
{
    if(VerifyPhoto(filed.matriculation))
    {
        // Do the job
    }
}
于 2013-02-04T12:53:45.303 回答
0

continue语句将控制权传递给它出现的封闭迭代语句的下一次迭代

while (!reader.EndOfStream)
{
    if(VerifyPhoto(filed.matriculation) == false)
    {
        continue;
        //go to the next line of the file.txt
    }
}
于 2013-02-04T12:54:05.887 回答
0

我在你这样做的方式上遗漏了什么吗?您在开始循环之前阅读了第一行吗?如果是这样,你不需要类似的东西

**string line;**
while (!reader.EndOfStream)
  {
     if(VerifyPhoto(filed.matriculation) == false)
        {
          //go to the next line of the file.txt
          **line = file.ReadLine();**
        }
  }
于 2013-02-04T12:56:18.513 回答
0

如果您尝试逐行阅读,那么File.ReadLines可能会有用。

此外,您正在寻找的是continue声明。

string myFile = @"c:\path\to\my\file.txt";

foreach(string line in File.ReadLines(myFile))
{
    //Do stuff
    //if(!VerifyPhoto())
    //    continue;
    //Do other logic
}
于 2013-02-04T12:56:19.650 回答