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,
示例:
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
(1)
(2)
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)
(3)
(4)
(5)
让我们来看看他们各自的功能:
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());
}
这简直太强了。