码迷,mamicode.com
首页 > 其他好文 > 详细

LINQ实现

时间:2017-08-17 00:47:28      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:his   ati   index   csharp   stat   arp   tor   return   ace   

public static IEnumerable<TSource> MyWhere<TSource>(

    this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
    foreach (TSource item in source)
    {
        if (predicate(item))
            yield return item;
    }
}

Yield迭代器,延迟计算

1)        Yield迭代器

在上面定义的MyWhere扩展方法中,我们使用了yield迭代器。使我们不必“显示”实现IEnumerable或IEnumerator接口。只需要简单的使用 yield 关键字,由 JIT 编译器帮我们编译成实现 IEnumerable或IEnumerator 接口的对象(即:本质还是传统遍历,只是写法上非常简洁),就能使用foreach进行遍历。

LINQ实现

标签:his   ati   index   csharp   stat   arp   tor   return   ace   

原文地址:http://www.cnblogs.com/sjqq/p/7376630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!