LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法
介绍
·Select - Select选择;延迟
·Where - Where查询;延迟
·OrderBy - 按指定表达式对集合正序排序;延迟
·OrderByDescending - 按指定表达式对集合倒序排序;延迟
·GroupBy - 分组;延迟
·Join - Join查询;延迟
·GroupJoin - 分组Join查询;延迟
·以上查询操作符所对应的查询语法
示例
Summary.aspx.cs
- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Linq;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Xml.Linq;
- using System.Collections.Generic;
- using DAL;
- public partial class LINQ_Summary : System.Web.UI.Page
- {
- NorthwindDataContext _ctx = new NorthwindDataContext();
- string[] _ary = null;
- protected void Page_Load(object sender, EventArgs e)
- {
- _ary = new string[] { "asp.net", "csharp", "xhtml", "css", "javascript",
- "wcf", "wpf", "silverlight", "linq", "wf",
- "sqlserver", "asp.net ajax", "ssis", "ssas", "ssrs" };
- // Select - Select选择;延迟
- Summary_Select();
- // Where - Where查询;延迟
- Summary_Where();
- // OrderBy - 按指定表达式对集合正序排序;延迟
- // OrderByDescending - 按指定表达式对集合倒序排序;延迟
- Summary_OrderBy_OrderByDescending();
- // GroupBy - 分组;延迟
- Summary_GroupBy();
- // Join - Join查询;延迟
- Summary_Join();
- // GroupJoin - 分组Join查询;延迟
- Summary_GroupJoin();
- }
- }
Select - Select选择;延迟
- /// <summary>
- /// Select - Select选择;延迟
- /// </summary>
- void Summary_Select()
- {
- // 使用Select查询操作符
- var categories = _ctx.Categories.Select(
- c => new { CategoryName = "类别名称:" + c.CategoryName });
- foreach (var c in categories)
- {
- result.InnerHtml += c.CategoryName + "<br />";
- }
- result.InnerHtml += "<br />";
- // 与上面的Select查询操作符相对应的查询语法
- var categories2 = from c in _ctx.Categories
- select new { CategoryName = "类别名称:" + c.CategoryName };
- foreach (var c in categories2)
- {
- result.InnerHtml += c.CategoryName + "<br />";
- }
- result.InnerHtml += "<br />";
- }
运行结果
类别名称:Beverages
类别名称:Condiments
类别名称:Confections
类别名称:Dairy Products
类别名称:Grains/Cereals
类别名称:Meat/Poultry
类别名称:Produce
类别名称:Seafood
Where - Where查询;延迟
- /// <summary>
- /// Where - Where查询;延迟
- /// </summary>
- void Summary_Where()
- {
- // 使用Where查询操作符
- var ary = _ary.Where(a => a.StartsWith("w") && a.EndsWith("f"));
- foreach (string s in ary)
- {
- result.InnerHtml += s + "<br />";
- }
- result.InnerHtml += "<br />";
- // 与上面的Where查询操作符相对应的查询语法
- var ary2 = from a in _ary
- where a.StartsWith("w") && a.EndsWith("f")
- select a;
- foreach (string s in ary2)
- {
- result.InnerHtml += s + "<br />";
- }
- result.InnerHtml += "<br />";
- }
运行结果
wcf
wpf
wf
OrderBy - 按指定表达式对集合正序排序;延迟
OrderByDescending - 按指定表达式对集合倒序排序;延迟
- /// <summary>
- /// OrderBy - 按指定表达式对集合正序排序;延迟
- /// OrderByDescending - 按指定表达式对集合倒序排序;延迟
- /// </summary>
- void Summary_OrderBy_OrderByDescending()
- {
- // 使用OrderBy查询操作符
- var ary = (from a in _ary
- select a).OrderBy(a => a.Length); // OrderByDescending与OrderBy用法相同
- foreach (string s in ary)
- {
- result.InnerHtml += s + "<br />";
- }
- result.InnerHtml += "<br />";
- // 与上面的OrderBy查询操作符相对应的查询语法
- var ary2 = from a in _ary
- orderby a.Length ascending // orderby xxx descending与orderby xxx ascending用法相同
- select a;
- foreach (string s in ary2)
- {
- result.InnerHtml += s + "<br />";
- }
- result.InnerHtml += "<br />";
- }
运行结果
wf
css
wcf
wpf
linq
ssis
ssas
ssrs
xhtml
csharp
asp.net
sqlserver
javascript
silverlight
asp.net ajax
GroupBy - 分组;延迟
- /// <summary>
- /// GroupBy - 分组;延迟
- /// </summary>
- void Summary_GroupBy()
- {
- // 使用GroupBy查询操作符
- var list = (from a in _ary
- select a).GroupBy(a => a.Length).Select(
- g => new { Group = g.Key, Member = g });
- foreach (var g in list)
- {
- result.InnerHtml += g.Group + "个字符:<br />";
- foreach (string s in g.Member)
- {
- result.InnerHtml += "--" + s + "<br />";
- }
- }
- result.InnerHtml += "<br />";
- // 与上面的GroupBy查询操作符相对应的查询语法
- var list2 = from a in _ary
- group a by a.Length into g
- select new { Group = g.Key, Member = g };
- foreach (var g in list2)
- {
- result.InnerHtml += g.Group + "个字符:<br />";
- foreach (string s in g.Member)
- {
- result.InnerHtml += "--" + s + "<br />";
- }
- }
- result.InnerHtml += "<br />";
- }
运行结果
7个字符:
--asp.net
6个字符:
--csharp
5个字符:
--xhtml
3个字符:
--css
--wcf
--wpf
10个字符:
--javascript
11个字符:
--silverlight
4个字符:
--linq
--ssis
--ssas
--ssrs
2个字符:
--wf
9个字符:
--sqlserver
12个字符:
--asp.net ajax
Join - Join查询;延迟
- /// <summary>
- /// Join - Join查询;延迟
- /// </summary>
- void Summary_Join()
- {
- // 使用Join查询操作符
- var products = _ctx.Products.Join(
- _ctx.Categories,
- p => p.CategoryID,
- c => c.CategoryID,
- (p, c) => new { c.CategoryName, p.ProductName }).Take(5);
- foreach (var p in products)
- {
- result.InnerHtml += p.CategoryName + " - " + p.ProductName + "<br />";
- }
- result.InnerHtml += "<br />";
- // 与上面的Join查询操作符相对应的查询语法
- var products2 = (from p in _ctx.Products
- join c in _ctx.Categories
- on p.CategoryID equals c.CategoryID
- select new { c.CategoryName, p.ProductName }).Take(5);
- foreach (var p in products2)
- {
- result.InnerHtml += p.CategoryName + " - " + p.ProductName + "<br />";
- }
- result.InnerHtml += "<br />";
运行结果
Beverages - Chai
Beverages - Chang
Condiments - Aniseed Syrup
Condiments - Chef Anton's Cajun Seasoning
Condiments - Chef Anton's Gumbo Mix
GroupJoin - 分组Join查询;延迟
- /// <summary>
- /// GroupJoin - 分组Join查询;延迟
- /// </summary>
- void Summary_GroupJoin()
- {
- // 使用GroupJoin查询操作符
- var products = _ctx.Categories.GroupJoin(
- _ctx.Products,
- c => c.CategoryID,
- p => p.CategoryID,
- (p, g) => new { p.CategoryName, ProductCount = g.Count() });
- foreach (var g in products)
- {
- result.InnerHtml += g.CategoryName + ":" + g.ProductCount + "<br />";
- }
- result.InnerHtml += "<br />";
- // 与上面的GroupJoin查询操作符相对应的查询语法
- var products2 = from c in _ctx.Categories
- join p in _ctx.Products on c.CategoryID equals p.CategoryID into g
- select new { CategoryName = c.CategoryName, ProductCount = g.Count() };
- foreach (var g in products2)
- {
- result.InnerHtml += g.CategoryName + ":" + g.ProductCount + "<br />";
- }
- result.InnerHtml += "<br />";
- }
运行结果
Beverages:12
Condiments:12
Confections:13
Dairy Products:10
Grains/Cereals:7
Meat/Poultry:6
Produce:5
Seafood:12
LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法的更多相关文章
- .NET 3.5(5) - LINQ查询操作符之Select、Where、OrderBy、OrderByDescending
.NET 3.5(5) - LINQ查询操作符之Select.Where.OrderBy.OrderByDescending 介绍 ·Select - Select选择:延迟 ·Where ...
- Linq基础操作之Select,Where,OrderBy,ThenBy源码分析
Linq基础操作之Select,Where,OrderBy,ThenBy源码分析 二:Select 它是延迟执行.yield有得一拼,因为他们都是生成了一个枚举类. if (source is TSo ...
- Mysql查询语句,select,inner/left/right join on,group by.....[例题及答案]
创建如下表格,命名为stu_info, course_i, score_table. 题目: 有如图所示的三张表结构,学生信息表(stu_info),课程信息表(course_i),分数信息表(sco ...
- LINQ标准查询操作符(一)——select、SelectMany、Where、OrderBy、OrderByDescending、ThenBy、ThenByDescending和Reverse
一.投影操作符 1. Select Select操作符对单个序列或集合中的值进行投影.下面的示例中使用select从序列中返回Employee表的所有列: //查询语法 var query = fro ...
- 转linq中的Single()、First()、Take(1) LINQ 标准的查询操作符 排序 orderby、thenby、Take
Single():操作一个集合,同时强要求只有一个对象匹配,并返回这一个. First():操作一个集合,可以有多个对象匹配,但是只返回第一个. Take(1):操作一个集合,可以有对个对象匹配,单只 ...
- LINQ 学习路程 -- 查询操作 OrderBy & OrderByDescending
Sorting Operator Description OrderBy 通过给定的字段进行升序 降序 排序 OrderByDescending 通过给定字段进行降序排序,仅在方法查询中使用 Then ...
- LinQ实战学习笔记(三) 序列,查询操作符,查询表达式,表达式树
序列 延迟查询执行 查询操作符 查询表达式 表达式树 (一) 序列 先上一段代码, 这段代码使用扩展方法实现下面的要求: 取进程列表,进行过滤(取大于10M的进程) 列表进行排序(按内存占用) 只保留 ...
- LINQ标准查询操作符详解(转)
一. 关于LINQ LINQ 英文全称是“Language-Integrated Query”,中文为“语言集成查询”,它是微软首席架构师.Delphi 之父和C# 之父——Anders ...
- Linq to OBJECT延时标准查询操作符
1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select 操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...
随机推荐
- 运用js解决java selenium元素定位问题
一.解决定位并操作uneditable元素 尝试了通过id,xpath等等定位元素后点击都提示Element is not clickable at point 再看了下可以click的元素发现上面有 ...
- 英文缩写&名词
DAO:Data Access Object 数据访问对象 Abstract Oriented Programing 面向借口编程 IOC: Inversion of Control 控制反转 DI: ...
- .htaccess应该放在哪里?
根据 Apache 官方的介绍,.htaccess 文件属于分布式配置文件,可以放置在网站 www 根目录的所有子目录.以及 www 根目录的上一级目录中,生效的路径总是当前目录及其所有子目录(可在文 ...
- vm10虚拟机安装Mac OS X10.10教程[转]
update:http://www.sysprobs.com/vmware-workstation-8-0-8-0-1-unlocker-to-run-mac-os-x-guest-in-window ...
- 为什么使用 Bootstrap?
为什么使用 Bootstrap? 移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式. 浏览器支持:所有的主流浏览器都支持 Bootstrap. 容易上 ...
- java中byte, int的转换
最近在做些与编解码相关的事情,又遇到了byte和int的转换,看着那些关于反码.补码的说明依旧头疼,还是记下些实用的方法吧.int -> byte可以直接使用强制类型转换: byte b = ( ...
- SQLite常用命令
1.点命令 [退出SQLite提示符] .quit .exit [帮助] .help [显示设置] .show 2.语法 [结束符] : --一行语句的结束以分号(:)结尾 [CREATE TABLE ...
- Spring配置中的classpath和classpath*的区别
初学SSH框架,昨天在配置Spring的时候,提示我找不到Spring.xml文件,后面百度之后把classpath改成classpath* 就好了,下面是了解到的简单区别. classpath:只会 ...
- JavaScript字符串常用操作函数之学习笔记
字符串简介 使用英文单引号或双引号括起来,如:’Hello’,”World”,但是不能首尾的单引号和双引号必须一致,交错使用,如果要打印单引号或者双引号,可以使用转义字符\’(单引号),\”(双引号) ...
- MJExtension框架介绍
MJExtension框架介绍 标签: MJExtension 2015-05-01 08:22 1120人阅读 评论(0) 收藏 举报 分类: Foundation(14) 版权声明:本文为博主 ...