关于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 变量值,前台遍历调用遍历输出即可。
作者:realyrare
出处:https://www.cnblogs.com/mhg215/
声援博主:如果您觉得文章对您有帮助,请点击文章末尾的【关注我】吧!
别忘记点击文章右下角的【推荐】支持一波。~~~///(^v^)\\\~~~ .
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果您有其他问题,也欢迎关注我下方的公众号,可以联系我一起交流切磋!