登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学无止境

一点积累,与大家分享

 
 
 

日志

 
 

精通 LINQ数据访问技术 --筛选操作Where  

2010-07-12 12:25:40|  分类: C#技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

5.2  筛选操作Where

筛选操作Where能够处理由逻辑运算符(如逻辑 “与”、逻辑“或”)组成的逻辑表达式,并从数据源中筛选数据,它和where子句的功能相似。Enumerable类的Where()方法的原型如下。

public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source,

Func<TSource, bool> predicate)

其中,source参数表示被筛选的数据源,该数据 源的类型为IEnumerable<T>。predicate参数表示筛选函数,该函数指定元素满足的条件。该函数返回数据类型为 IEnumerable<T>的序列。

下面的代码实例中的 WhereFilterQuery()函数演示了Where操作筛选数据的方法,具体步骤说明如下。

(1)创建数据类型为 List<UserInfo>的数据源users,该数据源包含9个元素。

(2)使用LINQ查询表达式查询ID值小于3的元 素。

(3)使用Where操作筛选用户名称 (Username属性的值)包含“3”字符串的元素。

(4)使用foreach语句输出上述查询操作的结 果。

private void WhereFilterQuery()

{   ///构建数据源

                   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 u;

                   var valuesOther = users.Where(u => u.Username.IndexOf("3") > -1);

                   ///显示查询结果

                   foreach(var v in values){Response.Write(v.Username + "</br>");}

                   foreach(var v in valuesOther){Response.Write(v.Username + "</br>");}

}

WhereFilterQuery()函数执行 Where操作之后的结果和数据源对比如表5.2所示。

表5.2  Where操作前后的数据对比

数据源

查询表达式/操作

查询结果

说明

users(包含9个元素,ID属性的值分别为1、2、3、4、5、6、7、8、9)

from u in users

where u.ID < 3

select u

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


users(包含9个元素,ID属性的值分别为1、2、3、4、5、6、7、8、9)

Where(u => u.Username.IndexOf("3") > -1)

valuesOther(包含1个元素,ID属性的值3)


  评论这张
 
阅读(876)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018