C#yield return

时间:2017-05-08 21:09:00

标签: c# file foreach

我在下面有这个方法GetWordsArray,当我在主程序中调用该方法时,它只打印出以特定字母开头的整个句子。

    public static void GetWordsArray(string path, string toFind)
    {
        string[] words = File.ReadAllLines(path);
        if (File.Exists(path)) 
        {              
            foreach (string line in words)
            {
                if(line.StartsWith(toFind))
                {
                    Console.WriteLine(line);
                }                  
            }
        }
        else
        {
            Console.WriteLine("Directory not found");
        }
    }

这就是我在主程序中调用方法的方法:

    Reader r = new Reader();            
    string path = @"randomtext.txt";
    Reader.GetWordsArray(path, "b");

如何打印文本文件中以字母b开头的所有单词?例如?

2 个答案:

答案 0 :(得分:0)

让我们说你的方法是在一个名为Hello的类上。然后你就可以这样称呼它。

 Hello hello = new Hello();
 string path = @"D:\Data\words.txt";
 var lines = hello.GetWords(path);
 foreach (var line in lines)
 {
      Console.WriteLine(line);
 }

你的方法确实有一些冗余,因为你可以简单地返回lines变量,它将以相同的方式工作。在编写迭代器时使用yield。

答案 1 :(得分:0)

> comapare2 <- ifelse(predict=actual,"true","false")

Error in ifelse(predict = actual, "true", "false") : 
  unused argument (predict = actual)