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

public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

其中source表示要筛选的数据源,predicate表示筛选函数,该函数用来指定元素满足的条件。

  下面的实例代码WhereFilterQuery()函数演示了where操作筛选的方法。

具体的演示数据我们还是用前面讲解的UserBaseInfo类。

 public class UserBaseInfo
{
private List<string> aliasname;
private int id;
private string email;
private int roleid;
private string username; public UserBaseInfo(int Id, string userName, string email, List<string> aliasName)
: this(Id, userName, email)
{ this.aliasname = aliasName;
} public UserBaseInfo(int Id, string userName, string email)
{
this.id = Id;
this.username = userName;
this.email = email;
} public UserBaseInfo(int Id, string userName, string email, int roleId)
: this(Id, userName, email)
{
this.roleid = roleId;
} public UserBaseInfo(int Id, string userName, string email, int roleId, List<string> aliasName)
: this(Id, userName, email, roleId)
{
this.aliasname = aliasName;
} public List<string> AliasName
{
get { return this.aliasname; }
set { this.aliasname = AliasName; }
} public int ID
{
get { return this.id; }
set
{
this.id = ID;
}
} public string Email
{
get { return this.email; }
set { this.email = Email; }
} public int RoleId
{
get { return this.roleid; }
set { this.roleid = RoleId; }
} public string UserName
{
get { return this.username; }
set { this.username = UserName; }
}
}

首先我们创建一个数据类型为List<UserBaseInfo>类型的对象users,包含9个元素。然后我们用Linq查询出ID的值小于3的元素。在这里我们用2中查询方式,一种就是前面讲过的查询表达式,一种就是现在讲的查询操作。

  private void WhereFilterQuery()
{ List<UserBaseInfo> users = new List<UserBaseInfo>(); for (int i = ; i < ; i++)
{
users.Add(new UserBaseInfo(i, "users0" + i.ToString(), "user0" + i.ToString() + "@web.com", i * )); } //查询表达式
var result1 = from u in users
where u.ID <
select u;
//查询操作
var result2 = users.Where(u=>u.ID<); Response.Write("------查询表达式-----------</br>");
foreach (var u in result1)
{ Response.Write("用户ID"+u.ID+"_" +"用户名"+u.UserName+ "</br>"); } Response.Write("------查询操作-----------</br>");
foreach (var u in result2)
{ Response.Write("用户ID" + u.ID + "_" + "用户名" + u.UserName + "</br>"); }
}

我们用两种方式,我们来看看最终结果:

可以看到查询的结果是一样的。

Linq查询操作之Where筛选的更多相关文章

  1. C#3.0新增功能09 LINQ 基础04 基本 LINQ 查询操作

    连载目录    [已更新最新开发文章,点击查看详细] 本篇介绍 LINQ 查询表达式和一些在查询中执行的典型操作. 获取数据源 在 LINQ 查询中,第一步是指定数据源. 和大多数编程语言相同,在使用 ...

  2. Linq查询操作之排序操作

    在Linq中排序操作可以按照一个或多个关键字对序列进行排序.其中第一个排序关键字为主要关键字,第二个排序关键字为次要关键字.Linq排序操作共包含以下5个基本的操作. 1.OrderBy操作,根据排序 ...

  3. Linq查询操作之投影操作

    投影操作,乍一看不知道在说啥.那么什么是投影操作呢?其实就是Select操作,名字起的怪怪的.和Linq查询表达式中的select操作是一样的.它能够选择数据源中的元素,并指定元素的表现形式.投影操作 ...

  4. Linq查询操作之聚合操作(count,max,min,sum,average,aggregate,longcount)

    在Linq中有一些这样的操作,根据集合计算某一单一值,比如集合的最大值,最小值,平均值等等.Linq中包含7种操作,这7种操作被称作聚合操作. 1.Count操作,计算序列中元素的个数,或者计算满足一 ...

  5. Linq查询操作语句学习

    对于一个集合,我们通常会用foreach或者for循环来判断查找里面的元素. 但这种方法通常会看起来比较复杂,我们可以使用linq. Linq允许编写C#代码以查询数据库相同的方式操作内存数据(写法类 ...

  6. Linq专题之查询操作

    前面我们主要讲解的是Linq的查询表达式,Linq不但提供了一些基本的查询表达式,还提供了数十个查询操作.比如筛选操作.聚合操作.投影操作等等.通过这些查询操作可以更方便的对数据源进行处理. Linq ...

  7. Linq查询简介

    查询是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据库的 SQL 和用于 XML 的 XQuery. 因此, ...

  8. C#3.0新增功能09 LINQ 基础02 LINQ 查询简介

    连载目录    [已更新最新开发文章,点击查看详细] 查询 是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据 ...

  9. .NET LINQ查询操作中的类型关系

    LINQ 查询操作中的类型关系      若要有效编写查询,您应该了解完整的查询操作中的变量类型是如何全部彼此关联的. 如果您了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例. 另外 ...

随机推荐

  1. (String) | String.valueOf()

    Map m = new HashMap(); Integer i = 5; String s = null; m.put("val1", i); m.put("val2& ...

  2. 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方。

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花 数 ", ...

  3. centos7 Linux 安装mysql

    安装过程如: http://blog.csdn.net/tengdazhang770960436/article/details/18361979 中间过程出现无法安装mysql-server 解决方 ...

  4. 使用ueditor小结

    1. 导入 js: ueditor.config.js ueditor.all.js css/images/plugin: themes lang dialog(可选) third-party(可选) ...

  5. 一个winform带你玩转rabbitMQ

    源码已放出 https://github.com/dubing/MaoyaRabbit 本章分3部分 一.安装部署初探 二.进阶 三.api相关 安装 部署 初探 先上图 一. 安装部署 下载 rab ...

  6. 关于typedef的使用方法

    在计算机编程语言中用来为复杂的声明定义简单的别名.与宏定义有些差异.它本身是一种存储类的keyword,与auto.extern.mutable.static.register等keyword不能出如 ...

  7. iOS 自定义滑动切换TabBar

    貌似经常会用到,自己整理收藏起来,方便日后查找备用. 效果如图: 由于制作gif,调整了属性,所以看起来的效果不好.如果用默认配置,生成的gif会很大. 制作gif: 1.使用QuickTimePla ...

  8. swift 类和结构体

    1:类和结构体定义 类和结构体分别通过关键字class 和struct定义. swift的编码风格是类class和结构体struct名字使用大写字母开头的匈牙利表示法,相反的.类的方法和属性则用小写字 ...

  9. Ubuntu 16.04 LTS更新

    Canonical今天正式发布了新版的Ubuntu系统,针对PC.笔记本.上网本.平板和智能手机各类设备.这次的Ubuntu 16.04代号为Xenial Xerus——这个代号是由Canonical ...

  10. Dennis与Ken爷爷的UNIX/C世界

     沉寂了很久了,时间在不断地逝去,转眼又到了新的一年,2013的发生了太多,Beta版本.辞职.职位转换.ARM.Driver.初级厨艺.Dx11.GPU.CPU.登山.GNU/Linux.Cross ...