• 关于C# yield 你会使用吗?


       假设有这样一个需求:在一个数据源(下面代码arry)中把其中大于4的数据取出来遍历到前台,怎么做?(不使用linq)

     var arry = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

     第一种情况:  不使用yield的情况下(一般人应该都是这样用的)

           /// <summary>
            /// 没有使用yield
            /// </summary>
            public static IEnumerable<int> FilterWithOutYield
        {
            get
            {
    
                var result = new List<int>();
                foreach (var i in arry)
                {
                    if (i > 4)
                        result.Add(i);
                }
                return result;
            }
        }    

    第二种情况, 代码如下;

            /// <summary>
            /// 使用yield
            /// </summary>
            public static IEnumerable<int> FilterUseYield
        {
            get
            {
                foreach (var i in arry)
                {
                    if (i > 4)
                        yield return i;
                }
            }
        }

    yield使用场景:在一些特定的数据源里二次条件过滤时,不用再定义一个中间集合去存储,只需yield return 变量值,前台遍历调用遍历输出即可

    作者:课间一起牛

    出处:https://www.cnblogs.com/mhg215/

    声援博主:如果您觉得文章对您有帮助,请点击文章末尾的【关注我】吧!

    别忘记点击文章右下角的【推荐】支持一波。~~~///(^v^)\~~~ .

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    如果您有其他问题,也欢迎关注我下方的公众号,可以联系我一起交流切磋!

     B站: 课间一起牛的B站         知乎:课间一起牛的知乎

    码云:课间一起牛的码云      github:课间一起牛的github

  • 相关阅读:
    問題集リンク(DEV I)
    認定Platformデベロッパー 試験範囲
    React 学习资源
    IIS
    小学校
    リストに項番をつける
    七、JavaScript函数
    六、JavaScript数组
    五、JavaScript流程控制
    四、JavaScript操作符
  • 原文地址:https://www.cnblogs.com/mhg215/p/9798474.html
Copyright © 2020-2023  润新知