LINQ查询select子句

  在LINQ查询表达式中,select子句指定查询结果的类型和表现形式。LINQ查询表达式要么以select子句结束,要么为group子句结束。

  下面的代码实例就演示了包含最简单select子句的查询操作。该select子句选择元素的本身。


int[] values = {0,1,2,3,4,5,6,7,8,9};
var value = from v in values
where v < 3
select v;

  下面的代码实例就演示了使用select子句创建一个string类型的序列。其中,序列的值为users数据源元素的Username属性的值。该select子句选择元素的Username属性的值。

///构建数据源
List<UserInfo> users = new List<UserInfo>();
for (int i = 1; i < 10; i++)
{
         users.Add(new UserInfo(i, "User0" + i.ToString(),"User0" + i.ToString() + "@web.com"));
}
///查询ID值小于3的用户
IEnumerable<string> = from u in users
                  where u.ID < 3
                  select u.Username;

  上述的代码实例执行之前和之后,数据源和查询操作的结果对比如表所示。

表  数据源和查询操作的结果对比(4)

数据源

查询表达式/操作

查询结果

说明

values(包含9个元素,元素的ID属性的值分别为1、2、3、4、5、…、9)

from u in values

where u.ID < 3

select u

value(包含2个元素,元素的ID属性的值分别为1、2)

 

  下面的代码实例就演示了使用select子句创建一个类型为UserInfoOther的序列。其中,序列的值为users数据源元素的ID属性的值与100的乘积。该select子句包含一个表达式,并计算表达式的值。

///构建数据源
List<UserInfo> users = new List<UserInfo>();
for (int i = 1; i < 10; i++)
{
         users.Add(new UserInfo(i, "User0" + i.ToString(),"User0" + i.ToString() + "@web.com"));
}
///查询ID值小于3的用户
IEnumerable<int> = from u in users
                  where u.ID < 3
                  select u.ID * 100;

  上述的代码实例执行之前和之后,数据源和查询操作的结果对比如表所示。

表  数据源和查询操作的结果对比(5)

数据源

查询表达式/操作

查询结果

说明

values(包含9个元素,元素的ID属性的值分别为1、2、3、4、5、…、9)

from UserInfo u in values

where u.ID < 3

select u.ID * 100

value(包含2个元素,元素的ID属性的值分别为100、200)

 

  下面的代码实例就演示了使用select子句创建一个序列。其中,序列包含ID和Username两个属性。该select子句使用new语句创建一个新类型的序列,该新类型包含ID和Username两个属性。

///构建数据源
List<UserInfo> users = new List<UserInfo>();
for (int i = 1; i < 10; i++){
         users.Add(new UserInfo(i, "User0" + i.ToString(),"User0" + i.ToString() + "@web.com"));
}
///查询ID值小于3的用户
var values = from u in users
                  where u.ID < 3
                  select new{u.ID,u.Username};

  上述的代码实例执行之前和之后,数据源和查询操作的结果对比如表所示。

表数据源和查询操作的结果对比(6)

数据源

查询表达式/操作

查询结果

说明

values(包含9个元素,元素的ID属性的值分别为1、2、3、4、5、…、9)

from UserInfo u in values

where u.ID < 3

select new{u.ID,u.Username}

value(包含2个元素,元素的ID属性的值分别为1、2)

 

  下面的代码实例就演示了使用select子句创建一个类型为UserInfoOther的序列。其中,序列包含ID和Username两个属性。该select子句使用new语句创建一个类型为UserInfoOther的序列,该类型包含ID和Username两个属性。

///构建数据源
List<UserInfo> users = new List<UserInfo>();
for (int i = 1; i < 10; i++)

{
         users.Add(new UserInfo(i, "User0" + i.ToString(),"User0" + i.ToString() + "@web.com"));
}
///查询ID值小于3的用户
IEnumerable<UserInfoOther> values = from u in users
                  where u.ID < 3
                  select new UserInfoOther
                   {
                            ID = u.ID,
                            Username = u.Username
                   };

  上述的代码实例执行之前和之后,数据源和查询操作的结果对比如表所示。

表 数据源和查询操作的结果对比(7)

数据源

查询表达式/操作

查询结果

说明

values(包含9个元素,元素的ID属性的值分别为1、2、3、4、5、…、9)

from UserInfo u in values

where u.ID < 3

select new UserInfoOther

{

ID = u.ID,

Username = u.Username

}

value(包含2个元素,元素的ID属性的值分别为1、2)

 

来源:http://blog.csdn.net/linqmail/article/details/2296840

加支付宝好友偷能量挖...


评论(0)网络
阅读(181)喜欢(0)asp.net-linq