MVC ---- 标准查询运算符
标准查询运算符:定义在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 ---- 标准查询运算符的更多相关文章
- .NET中那些所谓的新语法之四:标准查询运算符与LINQ
开篇:在上一篇中,我们了解了预定义委托与Lambda表达式等所谓的新语法,这一篇我们继续征程,看看标准查询运算符和LINQ.标准查询运算符是定义在System.Linq.Enumerable类中的50 ...
- .NET LINQ标准查询运算符
标准查询运算符概述 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法. 大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了 IEnumerable<T> ...
- SQO (标准查询运算符)方法 & Linq To Object
#region SQO (标准查询运算符) 方法 #region Where() Find() FindAll() FirstOrDefault()等方法 static void c01where() ...
- 十四、C# 支持标准查询运算符的集合接口
支持标准查询运算符的集合接口. System.Linq.Enumeralbe类提供的一些常用的API 来执行集合处理 1.匿名类型 2.隐匿类型的局部变量 3.集合初始化器 4.集合 5.标准查询运算 ...
- “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法
“标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 IQueryable& ...
- C#3.0新增功能09 LINQ 标准查询运算符 01 概述
连载目录 [已更新最新开发文章,点击查看详细] 标准查询运算符 是组成 LINQ 模式的方法. 这些方法中的大多数都作用于序列:其中序列指其类型实现 IEnumerable<T> 接 ...
- C#3.0新增功能09 LINQ 标准查询运算符 02 查询表达式语法
连载目录 [已更新最新开发文章,点击查看详细] 某些使用更频繁的标准查询运算符具有专用的 C# 语言关键字语法,使用这些语法可以在查询表达式中调用这些运算符. 查询表达式是比基于方法的等效项更具 ...
- C#3.0新增功能09 LINQ 标准查询运算符 03 按执行方式的分类
连载目录 [已更新最新开发文章,点击查看详细] 标准查询运算符方法的 LINQ to Objects 实现主要通过两种方法之一执行:立即执行和延迟执行.使用延迟执行的查询运算符可以进一步分为两种 ...
- C#3.0新增功能09 LINQ 标准查询运算符 04 运算
连载目录 [已更新最新开发文章,点击查看详细] 本篇主要介绍标准查询运算符的常用运算功能. 01 对数据排序 排序操作基于一个或多个属性对序列的元素进行排序. 第一个排序条件对元素执行主要排序. ...
随机推荐
- ubuntu,windows 卸载安装mysql
首先删除mysql: sudo apt-get remove mysql-* 1 然后清理残留的数据 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dp ...
- 循环结构 for
for格式:for(初始化表达式;循环条件表达式;循环后的操作表达式) { 执行语句:循环体 } ------------------------------------ -------------- ...
- 简单的应用可以用storyBoard
可是问题,你不知道你的项目有多复杂,storyBoard跳转控制有代码这么灵活吗? 1. 假是是根据推送来推出页面呢? 2. 假如我要根据不同情况不停地推出不同的页面呢?storyBoard怎么确定关 ...
- 常用软件安装及VS插件工具
常用开发工具安装 开发环境 Visual Studio 2013 Microsoft SQL Server 2008 源代码管理 Git TortoiseGit GitScc Provider Cru ...
- 表单验证——JqueryValidator、BootstrapValidator
表单验证两种方式: 1.JqueryValidator <!DOCTYPE html> <html lang="en"> <head> < ...
- 转载如何实现portlet之间的传递参数
Liferay 6开发学习(三十):跨页面Portlet之间的调用与数据传递 2014年10月09日 Liferay 评论 2 条 阅读 4,209 views 次 Portlet之间的通信方法有多种 ...
- linux cut字符串切割
linux字符串列截取 cut -d ‘分割条件’ -f ‘列数’ [root@LocalWeb01 ~]# less /etc/passwd | grep '^user' | grep -v ...
- Echarts使用及动态加载图表数据 折线图X轴数据动态加载
Echarts简介 echarts,缩写来自Enterprise Charts,商业级数据图表,一个纯JavaScript的图表库,来自百度...我想应该够简洁了 使用Echarts 目前,就官网的文 ...
- yii2之创建管理员
第一步,使用迁移文件建表admin 先建立数据迁移文件: 小贴士,如果发现自己改错了,需要重新修改迁移文件 第二步,使用gii工具创建model 创建一个新的model,继承AdminAR,方便以后管 ...
- C++ Word Count 发布程序
前段时间,模仿 Linux 系统下的 wc 程序,在 Windows 系统环境下使用 C/C++ 实现了一个相似的 WC 程序,只不过有针对性,针对的是 C/C++,Java 等风格的源代码文件. 此 ...