zoukankan      html  css  js  c++  java
  • Linq查询操作之Where筛选

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

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

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

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

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

     1 public class UserBaseInfo
     2     {
     3         private List<string> aliasname;
     4         private int id;
     5         private string email;
     6         private int roleid;
     7         private string username;
     8 
     9         public UserBaseInfo(int Id, string userName, string email, List<string> aliasName)
    10             : this(Id, userName, email)
    11         {
    12 
    13             this.aliasname = aliasName;
    14         }
    15 
    16         public UserBaseInfo(int Id, string userName, string email)
    17         {
    18             this.id = Id;
    19             this.username = userName;
    20             this.email = email;
    21         }
    22 
    23         public UserBaseInfo(int Id, string userName, string email, int roleId)
    24             : this(Id, userName, email)
    25         {
    26             this.roleid = roleId;
    27         }
    28 
    29         public UserBaseInfo(int Id, string userName, string email, int roleId, List<string> aliasName)
    30             : this(Id, userName, email, roleId)
    31         {
    32             this.aliasname = aliasName;
    33         }
    34 
    35         public List<string> AliasName
    36         {
    37             get { return this.aliasname; }
    38             set { this.aliasname = AliasName; }
    39         }
    40 
    41         public int ID
    42         {
    43             get { return this.id; }
    44             set
    45             {
    46                 this.id = ID;
    47             }
    48         }
    49 
    50         public string Email
    51         {
    52             get { return this.email; }
    53             set { this.email = Email; }
    54         }
    55 
    56         public int RoleId
    57         {
    58             get { return this.roleid; }
    59             set { this.roleid = RoleId; }
    60         }
    61 
    62         public string UserName
    63         {
    64             get { return this.username; }
    65             set { this.username = UserName; }
    66         }
    67     }

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

     1  private void WhereFilterQuery()
     2         {
     3 
     4             List<UserBaseInfo> users = new List<UserBaseInfo>();
     5   
     6 
     7             for (int i = 1; i < 10; i++)
     8             {
     9                 users.Add(new UserBaseInfo(i, "users0" + i.ToString(), "user0" + i.ToString() + "@web.com", i * 2));
    10                
    11             }
    12 
    13             //查询表达式
    14             var result1 = from u in users
    15                           where u.ID < 3
    16                           select u;
    17 //查询操作
    18             var result2 = users.Where(u=>u.ID<3);
    19 
    20             Response.Write("------查询表达式-----------</br>");
    21             foreach (var u in result1)
    22             {
    23 
    24                 Response.Write("用户ID"+u.ID+"_" +"用户名"+u.UserName+ "</br>");
    25  
    26             }
    27 
    28             Response.Write("------查询操作-----------</br>");
    29             foreach (var u in result2)
    30             {
    31 
    32                 Response.Write("用户ID" + u.ID + "_" + "用户名" + u.UserName + "</br>");
    33 
    34             }
    35         }

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

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

  • 相关阅读:
    JS变量的作用域
    使用jquery修改css中带有!important的样式属性
    js异步加载的三种解决方案
    js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )
    【翻译】MongoDB指南/CRUD操作(二)
    【翻译】MongoDB指南/CRUD操作(一)
    【翻译】MongoDB指南/引言
    深入浅出UML类图(一)
    让thinkphp 5 支持pathinfo 的 nginx ,去掉index.php
    linux 常用命令
  • 原文地址:https://www.cnblogs.com/yplong/p/5416696.html
Copyright © 2011-2022 走看看