Linq学习笔记2(查询操作)

LINQ 不但提供了查询表达式,而且还提供了数十个查询操作,如筛选、投影、集合、聚合等操作。通过这些操作我们能够够更加方便地操作序列。看看有哪些查询操作:
1,   筛选操作Where
示例:
List<OA_User> user=new List<OA_User>();
For(int I=0;I<10;I++)
{
     user.Add(new OA_User(“name”+i.ToString(),”age”+i.ToString(),”sex”+i.ToString());
}
var us=from u in user
     select u;
var values= us.where(u>=u.userid<=7);
foreach(var v in values)
{
     response.write(v.username);
}
2,投影操作
投影操作和SQL 语句中的SELECT 子句功能相似。投影操作包括以下2种。
(1)    select 操作,将数据源中的元数据投影到新序列中,并指定元素的类型和变现形式
(2)    selectMany 操作,将数据源中的元数据投影到新序列中,指定元素的类型和变现形式
selectMany操作可以将一个函数应用到多个序列之上,并将结果合并为一个序列。下面就让我们看看他们的示例:
示例:
List<OA_User> user=new List<OA_User>();
For(int I=0;I<10;I++)
{
     user.Add(new OA_User(“name”+i.ToString(),”age”+i.ToString(),”sex”+i.ToString());
}
var values= us.select (u>=u.userid%2);//返回值为整型数组,编号%2的余数。
foreach(int v in values)
{
     response.write(v.username);
}
selectMany示例:
List<OA_User> user_arr = new List<OA_User>();
user_arr.Add(USER);
user_arr.Add(USER2);
var varlus = user_arr.SelectMany(i => i);
foreach (OA_User u in varlus)
{
     Response.Write(u.UserId.ToString());
}
3排序操作
排序操作分为5个操作:
(1)   orderby 操作,根据关键字对序列中的元素升序排列。
(2)     orderbyDescending操作,根绝关键字对序列中的元素按降序排列。
(3)     thenBy操作,根据次要关键字对序列中的元素按升序排列。
(4)     thenBy Descending操作,次要关键字对序列中的元素按降序排列。
(5)     reverse操作,将序列中的顺序惊醒反转。
让我们来看看他们各自的功能:
OrderBy:按主关键字升序排列。
List<OA_User> user=new List<OA_User>();
For(int I=0;I<10;I++)
{
     user.Add(new OA_User(“name”+i.ToString(),”age”+i.ToString(),”sex”+i.ToString());
}
var users = from u in user
            select u;
var userOrder = users.OrderBy(i => i.UserId);
foreach (OA_User u in users)
{

   Response.Write(u.UserId.ToString());
}
OrderbyDescending:按主关键字降序排列
var users = from u in user
select u;
var userOrderByDescending = users.OrderByDescending(i => i.UserId);
  foreach (OA_User u in userOrderByDescending)
        {

            Response.Write(u.UserId.ToString());
        }
ThenBy:按次要关键字升序排列操作。
var users = from u in user
select u;
var userThenBy = users.OrderBy(i => i.UserId).ThenBy(i=>i.UserName);
  foreach (OA_User u in userThenBy)
        {

            Response.Write(u.UserId.ToString());
        }
ThenByDescending:按次关键字降序排列操作。
var users = from u in user
select u;
var userThenByDescending = users.OrderBy(i => i.UserId). ThenByDescending (i=>i.UserName);
  foreach (OA_User u in userThenByDescending)
        {

            Response.Write(u.UserId.ToString());
        }
Reverse:顺序反转操作
var users = from u in user
select u;
var userOrder = users.OrderBy(i => i.UserId);
userOrder.Reverse();
foreach (OA_User u in userOrder)
{
Response.Write(u.UserId.ToString());
}
这简直太强了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值