Linq 实例
1.分页
var 分页 = (from c in ctx.Customers select c).Skip().Take();
2.分组
1)一般分组
//根据顾客的国家分组,查询顾客数大于5的国家名和顾客数
var 一般分组 = from c in ctx.Customers group c by c.Country into g where g.Count() > orderby g.Count() descending select new { 国家 = g.Key, 顾客数 = g.Count() };
2)匿名类型分组 (根据国家和城市分组,查询顾客覆盖的国家和城市)
var 匿名类型分组 = from c in ctx.Customers group c by new { c.City, c.Country } into g orderby g.Key.Country, g.Key.City select new { 国家 = g.Key.Country, 城市 = g.Key.City };
3)按条件分组
//按照是否超重条件分组,分别查询订单数量
var 按照条件分组 = from o in ctx.Orders group o by new { 条件 = o.Freight > } into g select new { 数量 = g.Count(), 是否超重 = g.Key.条件 ? "是" : "否" };
3distinct
//查询顾客覆盖的国家
var 过滤相同项 = (from c in ctx.Customers orderby c.Country select c.Country).Distinct();
4 union
//查询城市是A打头和城市包含A的顾客并按照顾客名字排序
var 连接并且过滤相同项 = (from c in ctx.Customers where c.City.Contains("A") select c).Union (from c in ctx.Customers where c.ContactName.StartsWith("A") select c).OrderBy(c => c.ContactName);
5 concat
//查询城市是A打头和城市包含A的顾客并按照顾客名字排序,相同的顾客信息不会过滤
var 连接并且不过滤相同项 = (from c in ctx.Customers where c.City.Contains("A") select c).Concat (from c in ctx.Customers where c.ContactName.StartsWith("A") select c).OrderBy(c => c.ContactName);
6 取相交项
//查询城市是A打头的顾客和城市包含A的顾客的交集,并按照顾客名字排序
var 取相交项 = (from c in ctx.Customers where c.City.Contains("A") select c).Intersect (from c in ctx.Customers where c.ContactName.StartsWith("A") select c).OrderBy(c => c.ContactName);
7 排除相交项
//查询城市包含A的顾客并从中删除城市以A开头的顾客,并按照顾客名字排序
var 排除相交项 = (from c in ctx.Customers where c.City.Contains("A") select c).Except (from c in ctx.Customers where c.ContactName.StartsWith("A") select c).OrderBy(c => c.ContactName);
8 子查询
//查询订单数超过5的顾客信息
var 子查询 = from c in ctx.Customers where (from o in ctx.Orders group o by o.CustomerID into o where o.Count() > select o.Key).Contains(c.CustomerID) select c;
9 in操作
//查询指定城市中的客户
var in操作 = from c in ctx.Customers where new string[] { "Brandenburg", "Cowes", "Stavern" }.Contains(c.City) select c;
Linq 实例的更多相关文章
- Linq:Linq实例1..More
本文会不断更新应用实例. 需求1:对一个Rate列表的RateLevel属性求和,然后除以Rate列表的数量求平均值. 没有Linq的做法: Int rateLevel = ; foreach (Ra ...
- 经典Linq实例语句
从技术角度而言,LINQ定义了大约40个查询操作符,如select.from.in.where以及order by(C#中).使用这些操作符可以编写查询语句.不过,这些查询还可以基于很多类型的数据,每 ...
- Linq实例
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs& ...
- linq学习三个实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- linq中let关键字学习
linq中let关键字就是对子查询的一个别名,let子句用于在查询中添加一个新的局部变量,使其在后面的查询中可见. linq中let关键字实例 1.传统下的子查询与LET关键字的区别 C# 代 ...
- 转 --简单解决Linq多条件组合问题
本文笔者用清晰的实例,解决了Linq多条件问题,思路十分的清晰,笔者也很细心的做了描述,希望能给你带来帮助. 最近有个项目准备功能改版,师兄吩咐:尽可能地做到万般皆Linq,所以很多东西都要从存储过程 ...
- WebApi-JSON序列化循环引用
Overview 最近被序列化,循环引用的问题,让我浑身酸爽.遇到这种异常是在搭建WebApi的时候,当我返回Linq实例类集合的时候出现的. 下定决心要解决这个问题.循环引用引起的原因是: 比如说: ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- LinQ C#防注入式攻击实例代码
注入式攻击是Web开放项目中开发人员的第一时间要考虑的问题,下面就我的开发实例分享给大家,有用的的话就点个赞吧. 定義賬戶信息類 public class UserInfors { public st ...
随机推荐
- Struts2-整理笔记(五)拦截器、拦截器配置
拦截器(Interceptor) 拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制. 拦截器的优点 简化了Action的实现 ...
- struts2 使用filter解决中文乱码问题
1.编写fliter的代码 import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChai ...
- VS2010安装OpenGL
以下涉及到的所有资源都在这里: 链接:https://pan.baidu.com/s/1eSctT5K 密码:174s *我的VS2010的安装位置:D:\Program Files (x86)\M ...
- Git详解之六:Git工具
Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力.(伯乐在线 ...
- c#代码技巧
1.#region #endregion 1.#region 是一个分块预处理命令,主要用于编辑代码分段,在编译时会自动屏蔽,同时该指令可以使代码在VS代码编辑器中折叠或展开: 2.#region必须 ...
- 自己动手写把”锁”---LockSupport介绍
本篇是<自己动手写把"锁">系列技术铺垫的最后一个知识点.本篇主要讲解LockSupport工具类,它用来实现线程的挂起和唤醒. LockSupport是Java6引入 ...
- 从JVM字节码执行看重载和重写
Java 重写(Override)与重载(Overload) 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的 ...
- Head First设计模式之适配器模式
一.定义 适配器模式把一个类的接口,变换成客户端所期待的另一种接口,使原本因接口不匹配的两个类能够在一起工作. 二.结构 角色: Client:用户类,使用新接口Target来完成某些特定的需求. T ...
- 在File Explorer的当前路径上直接打开VS Code
在C:\windows\system32文件下创建code.bat文件, 内容如下: @echo offstart "" "%ProgramFiles(x86)%\Mic ...
- jBPM学习之部署流程定义
也许部署流程定义的方法有很多,这里选用的是用Java代码调用工作流引擎提供的部署服务API.在这之前,假设你的Eclipse已经安装好了GPD工作流画图工具,并且学会了画出最简单的HelloWorld ...