使用yield返回集合数据

使用yield能将返回值一个一个返回回去,然后接收的地方先进行处理,处理完,等下一个返回值回来后再处理下一个。

static void Main(string[] args)
{
    foreach (var arg in GetStrings())
    {
        Console.WriteLine(arg);
    }
    Console.ReadLine();
}

static IEnumerable<string> GetStrings()
{
   yield return "1";
    Console.WriteLine("1返回去了");
   yield return "2";
    Console.WriteLine("2返回去了");
    yield return "3";
    Console.WriteLine("3返回去了");
}

执行结果:

1
1返回去了
2
2返回去了
3
3返回去了
在async修饰的方法中使用yield

则返回值类型改为IAsyncEnumerable

static async Task Main(string[] args)
{
    await foreach (var arg in  GetStrings())
    {
        Console.WriteLine(arg);
    }
    Console.ReadLine();
}

static async IAsyncEnumerable<string> GetStrings()
{
   yield return "1";
    Console.WriteLine("1返回去了");
   yield return "2";
    Console.WriteLine("2返回去了");
    yield return "3";
    Console.WriteLine("3返回去了");
}
posted @ 2023-11-26 10:12  Simian_2018_12_22  阅读(9)  评论(0编辑  收藏  举报