您的位置:首页 > 数据库

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

2008-08-22 11:00 399 查看
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());
}
这简直太强了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linq user sql