精通LINQ --4.2.2 where子句

本文介绍LINQ查询表达式中的Where子句用法,包括如何使用逻辑运算符构建复杂的筛选条件,以及通过示例代码展示了如何在查询中应用这些条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LINQ查询表达式中,where子句指定筛选元素的逻辑条件,一般由逻辑运算符(如逻辑“与”、逻辑“或”)组成。一个查询表达式可以不包含where子句,也可以包含1个或多个where子句。每一个where子句可以包含1个或多个布尔条件表达式。

对于一个LINQ查询表达式而言,where子句不是必须的。如果where子句在查询表达式中出现,那么where子句不能为在查询表达式的第一个子句或最后一个子句。下面的代码实例就演示了一个简单的查询操作,并在该查询表达式中使用了where子句。

int[] values = {0,1,2,3,4,5,6,7,8,9};

var value = from v in values

where v < 3

select v;

下面的代码实例就演示了一个简单的查询操作,并在该查询表达式中使用了where子句。其中,where子句由两个布尔表达式和逻辑符合“&&”组成。

///构建数据源

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 value = from u in users

                  where u.ID < 3 && u.Username.IndexOf("0") > -1

                  select u;

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

  数据源和查询操作的结果对比(2

数据源

查询表达式/操作

查询结果

说明

values(包含9个元素,元素的ID属性的值分别为123459

from UserInfo u in values

where u.ID < 3 && u.Username.IndexOf("0") > -1

select u

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

 

下面的代码实例就演示了一个简单的查询操作,并在该查询表达式中使用了where子句。其中,where子句由两个布尔表达式和逻辑符号“&&”组成。其中,一个布尔表达式由IsExistUsername(string 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 value = from u in users

                  where u.ID < 3 && IsExistUsername(u.Username)

                  select u;

……

///判断用户名称是否包含“0”字符串

private bool IsExistUsername(string username)

{

return username.IndexOf("0") > -1;

}

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

数据源和查询操作的结果对比(3

数据源

查询表达式/操作

查询结果

说明

values(包含9个元素,元素的ID属性的值分别为123459

from UserInfo u in values

where u.ID < 3 && IsExistUsername(u.Username)

select u

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

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值