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 操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...
随机推荐
- SSH框架流程详解
解图: 由图可见,有三个框架{ ①. Struts_2 ②. Spring ③. Hibernate } 框架 作用 本质 同等于 Struts_2 实现MVC / 控制.跳转 过滤器(Filter) ...
- 51nod 1158 全是1的最大子矩阵
题目链接:51nod 1158 全是1的最大子矩阵 题目分类是单调栈,我这里直接用与解最大子矩阵类似的办法水过了... #include<cstdio> #include<cstri ...
- HR函数学习01——创建组织单位
创建组织单位: RH_OBJECT_CREATE REPORT ZLYHR01. DATA:LS_OBJ TYPE OBJEC, LV_STU TYPE GDSTR-SVECT, LV_TIT TYP ...
- i++问题
例题,以下代码的输出结果是什么? #include <stdio.h> int main() { ,,,,}; int *ptr = arr; *(ptr++) += ; printf(& ...
- 读《程序员的SQL金典》[3]--表连接、子查询
一.表连接-JOIN 1. 自连接实例 查询类型相同的订单信息. SELECT O1 .*,O2.* FROM T_Order O1 JOIN T_Order O2 ON O1 .FTypeId= O ...
- guava--Joiner、Splitter、MapJoinner、MapSplitter
Joiner: List<String> stringList = new ArrayList<String>(); stringList.add("aa" ...
- 一个关于自定义类型作为HashMap的key的问题
在之前的项目需要用到以自定义类型作为HashMap的key,遇到一个问题:如果修改了已经存储在HashMap中的实例,会发生什么情况呢?用一段代码来试验: import java.util.HashM ...
- 动态SQL基础
动态SQL就是我们可以动态构造SQL代码,然后再执行这个批处理.有两种执行动态SQL的方法,分别是EXEC命令和sp_executesql存储过程.下面是示例代码. USE TSQLFundament ...
- IOS基础库
iOS 开发者中心 https://developer.apple.com/devcenter/ios/inde ...
- 开发实时壁纸(Live Wallpapers)
所谓实时壁纸,就是指手机桌面不再是简单的图片,而是运行中的动画,这个动画是由程序实时绘制的,因此被称为实时壁纸. 为了开发实时壁纸,Android提供了WallpaperService基类,实时壁纸的 ...