【C#】yield关键字的简单理解

网上的讲解都太高大上

以下是本人对yield关键字的简单理解

 

举个例子,现在有数据,需要获取数据中的偶数集合

public static int[]  data = { 1, 2, 3, 4, 5, 6, 7, 8 };

不使用yield 

public static List<int> GetDataList()
{
    List<int> list = new List<int>();
    foreach (var item in data)
    {
        if (item % 2 == 0)
            list.Add(item);
    }
    return list;
}

使用yield 

public static IEnumerable<int> GetData()
{
    foreach (var item in data)
        if (item % 2 == 0)
            yield return item;
}

可以通过ToList()方法转为List<int>类型

List<int> dataList = GetData().ToList();

yield关键字相当于简化了写法

static void Main(string[] args)
{
    foreach (var item in GetDataList())
        Console.WriteLine(item);

    Console.WriteLine("---------------");

    foreach (int i in GetData())
        Console.WriteLine(i);

    Console.ReadKey();
}

输出

 

有事没事多看看官网的

MSDN上的:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/yield

相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页