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());
}
这简直太强了。
不但提供了查询表达式,而且还提供了数十个查询操作,如筛选、投影、集合、聚合等操作。通过这些操作我们能够够更加方便地操作序列。看看有哪些查询操作:
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学习笔记三-----基本查询操作
- C#学习笔记(八)—–LINQ查询创建策略
- [Oracle 学习笔记] 04 子查询和集合操作
- C#学习笔记(六)-使用ADO .NET查询和操作数据库
- Oracle学习查询操作的笔记以及语句
- Sharepoint学习笔记---SPList--使用Linq to Sharepoint间接查询External List(3.使用Linq to Sharepoint查询List内容)
- linq子查询--学习linq的资料和笔记(五)
- Linq学习总结之查询运算符笔记
- ASP.NET 3.5核心编程学习笔记(21):LINQ查询语法
- ASP学习笔记1操作必须使用一个可更新的查询
- JavaWeb学习笔记-JDBC操作(2)[数据库的更新与查询]
- LINQ 之查询基础学习笔记(一)
- LINQ之查询基础学习笔记(二)
- JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询
- MongoDB快速入门学习笔记4 MongoDB的文档查询操作
- Sharepoint学习笔记---SPList--使用Linq to Sharepoint间接查询External List(2.复制External List内容)
- ArcGIS API for JavaScript 4.2学习笔记[20] 使用缓冲区结合Query对象进行地震点查询【重温异步操作思想】
- c#学习笔记---语言集成查询LINQ
- C#学习笔记(八)—–LINQ查询的基础知识(下)
- C#中linq学习(Linq查询操作中的类型关系)示例