linq总结系列(一)

一、linq的基本概念

  LINQ是C#和VB中的统一查询语法,使用对象来保存和检索来自不同来源(如数据库、xml、对象集合)的数据。

  主要功能:消除了编程语言和数据库之间的不匹配,以及为不同类型的数据源提供统一的查询接口。

  适用范围:LInq适用于实现了IEnumerable <T>(IQueryable继承于IEnumerable )的实例,如:List,Dictionary,Queue,LinkedList,Array等

二、linq的使用

  有两种方法可以将LINQ查询写入IEnumerable集合或IQueryable数据源。

  1、查询语法

    特点:以from子句开头,可以以select或groupBy子句结束

  2、lambda表达式

  下边给出了简单的例子

  

 1        //测试数据
 2             IList<UserInfo> userList = new List<UserInfo>() { 
 3                 new UserInfo() { Id = 1, UserName = "zs", Age = 23} ,
 4                 new UserInfo() { Id = 2, UserName = "ls", Age = 20 },
 5                 new UserInfo() { Id = 3, UserName = "ww", Age = 33 },
 6                 new UserInfo() { Id = 4, UserName = "zl", Age = 26},
 7                 new UserInfo() { Id = 5, UserName = "tq", Age = 42 } 
 8              };
 9             //需求查询大于20岁的用户的名字和年龄
10 
11             //1、查询语法
12             var users1 = from u in userList
13                         where u.Age > 20
14                         select new { u.UserName,u.Age};
15             //2、lambda表达式
16             var users2 = userList.Where(u => u.Age > 20).Select(u => new { u.UserName, u.Age });

三、linq详解

  1、过滤 (where 和 oftype)

  Where:根据给定的条件表达式过滤集合,并返回一个新集合

  OfType:根据类型进行过滤

1        IList<object> list = new List<object>() { 1, "hello", user };//user是一个UserInfo的实例
2             //query语法
3               var result = from o in list.OfType<string>()
4                            select o;
5             //lambda语法
6               var result2 = list.OfType<string>();

  2、排序(OrderBy,OrderByDescending,ThenBy,ThenByDescending)

1     //对userList先按Id排序,再按Age排序
2             //query语法
3             var result = from u in userList
4                          orderby u.Id,u.Age descending
5                          select u;
6             //lambda语法  
7             var result2 = userList.OrderByDescending(u => u.Id).ThenBy(u=>u.Age);

  ----未完待续

    

猜你喜欢

转载自www.cnblogs.com/wyy1234/p/9053580.html