标准查询运算符:定义在System.Linq.Enumerable类中的50多个为IEnumerable<T>准备的扩展方法,这些方法用来

对它操作的集合进行查询筛选。

筛选集合Where:需要提供一个带bool返回值的“筛选器”,从而表明集合中某个元素是否应该被返回。

查询投射,返回新对象集合IEnumerable<TSource> Select()

统计数量 int Count()

多条件排序 Order By().ThenBy().ThenBy()

集合链接Join()

......

public class NineDemo
{
public static void TestNine()
{
List<User> usList =Five.GetUserList();
List<Dept> dtLsit =Five.GetDeptList(); //1.Where的用法
List<User> user = usList.Where(new Func<User,bool>(delegate(User u){return u.Age >})).ToList(); //遍历所以用户姓名+年龄
usList.ForEach(u=>Console.WriteLine(u.Name+u.Age); //遍历 年龄大于12的用户
user.ForEach(u=>Console.WriteLine(u.Name); //缩写 年龄大于12的用户
List<User> user = usList.where(u=>u.Age > ); // 2. Order排序
List<User> user = usList.OrderByDescending(u=>u.Age).ToList();
//先按年龄降序、手机号降序、姓名升序
List<User> user = usList.OrderByDescending(u=>u.Age).ThenByDescending(u=>u.Phone).ThenBy(u=>u.Name).ToList(); // 3. Join 链接
//User 和 Dept(deptId) 要有关系,User中有deptId .
//得到一个新的集合(匿名类) (u代表usList,p代表dtList)
var ud = usList.Join(dtLsit,u=>u.DeptId,p=>DeptId,(u,p)=>new {UserName=u.Name,LoginName=u.LoginName,Deptname=p.DeptName}).ToList(); //遍历
ud.ForEach(u=>Console.WriteLine(u.Name+u.DeptName));
-------------
     //第二种方式
//临时封装一个实体,用来接收新的数据
[Serializable]
public class UserDept{
public string UserName{get;set;}
public string LoginName{get;set;}
public string Deptname{get;set;}
} //得到一个新的集合(UserDept集合接收)
List<UserDept> ud = usList.Join(dtLsit,u=>u.DeptId,p=>DeptId,(u,p)=>new UserDept(){UserName=u.Name,LoginName=u.LoginName,Deptname=p.DeptName}).ToList(); //遍历
ud.ForEach(u=>Console.WriteLine(u.Name+u.DeptName)); //4. GroupBy 分组
//按照集合中的用户的部门编号进行分组(用IEnumerable<IGrouping<string,User>>接收)
IEnumerable<IGrouping<string,User>> usersGroup = usList.GroupBy(u=>u.DeptId);
//也可以放在匿名中
var usersGroup = usList.GroupBy(u=>u.DeptId);
//遍历
foreach(IGrouping<string,User> group in userGroup){
Console.WriteLine("部门编号"+group.Key);
//遍历组中的元素
foreach(User _user in group){
Console.WriteLine(_user.Name+_user.Phone);
}
} //5. Skip+Take分页
//Skip的意思:跳过,Take:拿,取
//前提数据源按一定的列进行排序
List<User> pageList = usList.OrderBy(u=>u.Name).ToList();
//取第二页数据
List<User> us = GetPageListByIndex(pageList,);
//遍历
us.ForEach(u=>u.Name+u.Phone); //封装一个方法
//根据页码提取当页数据 ,list要分页的数据,pageIndex页码
static List<User> GetPageListByIndex(List<User> list,int pageIndex){
int pageSize = ;
return list.Skip((pageIndex-)*pageSize).Take(pageSize).ToList();
} }
}

MVC ---- 标准查询运算符的更多相关文章

  1. .NET中那些所谓的新语法之四:标准查询运算符与LINQ

    开篇:在上一篇中,我们了解了预定义委托与Lambda表达式等所谓的新语法,这一篇我们继续征程,看看标准查询运算符和LINQ.标准查询运算符是定义在System.Linq.Enumerable类中的50 ...

  2. .NET LINQ标准查询运算符

    标准查询运算符概述      “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法. 大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了 IEnumerable<T> ...

  3. SQO (标准查询运算符)方法 & Linq To Object

    #region SQO (标准查询运算符) 方法 #region Where() Find() FindAll() FirstOrDefault()等方法 static void c01where() ...

  4. 十四、C# 支持标准查询运算符的集合接口

    支持标准查询运算符的集合接口. System.Linq.Enumeralbe类提供的一些常用的API 来执行集合处理 1.匿名类型 2.隐匿类型的局部变量 3.集合初始化器 4.集合 5.标准查询运算 ...

  5. “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法

    “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 IQueryable& ...

  6. C#3.0新增功能09 LINQ 标准查询运算符 01 概述

    连载目录    [已更新最新开发文章,点击查看详细] 标准查询运算符 是组成 LINQ 模式的方法. 这些方法中的大多数都作用于序列:其中序列指其类型实现 IEnumerable<T> 接 ...

  7. C#3.0新增功能09 LINQ 标准查询运算符 02 查询表达式语法

    连载目录    [已更新最新开发文章,点击查看详细] 某些使用更频繁的标准查询运算符具有专用的 C# 语言关键字语法,使用这些语法可以在查询表达式中调用这些运算符. 查询表达式是比基于方法的等效项更具 ...

  8. C#3.0新增功能09 LINQ 标准查询运算符 03 按执行方式的分类

    连载目录    [已更新最新开发文章,点击查看详细] 标准查询运算符方法的 LINQ to Objects 实现主要通过两种方法之一执行:立即执行和延迟执行.使用延迟执行的查询运算符可以进一步分为两种 ...

  9. C#3.0新增功能09 LINQ 标准查询运算符 04 运算

    连载目录    [已更新最新开发文章,点击查看详细] 本篇主要介绍标准查询运算符的常用运算功能. 01 对数据排序 排序操作基于一个或多个属性对序列的元素进行排序. 第一个排序条件对元素执行主要排序. ...

随机推荐

  1. 【剑指offer】重建二叉树

    一.题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7 ...

  2. Python中的类属性、实例属性与类方法、静态方法

    1.什么是类对象,实例对象 类对象:类名 实例对象:类创建的对象 2.类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++.Java中类的静态成员变量有点 ...

  3. Improving the quality of the output

    There are a variety of reasons you might not get good quality output from Tesseract. It's important ...

  4. 9/24matplotlib简介

    Matplotlib是一个在python下实现的类matlib的纯python的三方库,旨在用python实现matlib的功能,是python下最出色的绘图库,功能很完善,其风格根matlib很相似 ...

  5. Integer类之缓存

    在开始详细的说明问题之前,我们先看一段代码 1 public static void compare1(){ 2 Integer i1 = 127, i2 = 127, i3 = 128, i4 = ...

  6. stdcall cdecl

    一.stdcall windows API采用的都是这种方式 1.参数入栈由右向左 2.栈平衡由被调用者处理 二.cdcel C语言库采用的都是这种方式 1.参数入栈由右向左 2.栈平衡由调用者处理 ...

  7. zw版【转发·台湾nvp系列Delphi例程】HALCON AngleLl

    zw版[转发·台湾nvp系列Delphi例程]HALCON AngleLl procedure TForm1.Button1Click(Sender: TObject);var Row1, Row2 ...

  8. CATiledLayer

    CATiledLayer 有些时候你可能需要绘制一个很大的图片,常见的例子就是一个高像素的照片或者是地球表面的详细地图.iOS应用通畅运行在内存受限的设备上,所以读取整个图片到内存中是不明智的.载入大 ...

  9. VS2010的快捷键;VS2012变化的快捷键

    注释::VS2010是(Ctrl+E,C),VS2012是(Ctrl+K, Ctrl+C),实际操作,按住Ctrl键不放,先按K键,再按C键.相当于Ctrl+K加 Ctrl+C的组合键 反註解:VS2 ...

  10. python webdriver操作浏览器句柄

    断言 assert self.driver.title.find(u"搜狗搜索引擎")>=0, "assert error" 浏览器后退,前进,前进前要先 ...