linq 核心实现

查询操作符和扩展方法

查询操作符是linq的一个重要设施,linq使用扩展方式定义查询操作;

例如where 操作符:

初始linq表达式

Linq 核心实现
 1  public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T, bool> predicate)
 2         {
 3             foreach (T item in source)
 4             {
 5                 if (predicate(item))
 6                 {
 7                     return (IEnumerable<T>)item;
 8                 }
 9             }
10             return null;
11         }
初始linq表达式
 1 class app
 2 {
 3       static void main()
 4       {
 5             string[] names={"Burke","Connor","Frank","Everett","Albert","George","Harris","David"};
 6 
 7             IEnumerable<string> query=from s in names
 8                                                        where s.Length==5
 9                                                        orderby s
10                                                        select s.ToUpper();
11 
12 
13               foreach(string item in query)
14               {
15                      Console.WriteLine(item);
16                }
17 
18       }
19 }
lambda表达式,类似如下委托
普通的方式来调用扩展方法
1 IEnumerable<string> query=Enumerable.Where(names,s=>s.Length<6);
C#允许使用这个方法来调用扩展方法
1 IEnumerable<string> query=names.Where(s=>s.Length>6);

 

转载于:https://www.cnblogs.com/-ShiL/archive/2012/06/20/Star_2012060200103.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值