介绍
    ·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

.NET 3.5(5) - LINQ查询操作符之Select、Where、OrderBy、OrderByDescending的更多相关文章

  1. LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法

    介绍    ·Select - Select选择:延迟    ·Where - Where查询:延迟    ·OrderBy - 按指定表达式对集合正序排序:延迟    ·OrderByDescend ...

  2. Linq基础操作之Select,Where,OrderBy,ThenBy源码分析

    Linq基础操作之Select,Where,OrderBy,ThenBy源码分析 二:Select 它是延迟执行.yield有得一拼,因为他们都是生成了一个枚举类. if (source is TSo ...

  3. LINQ查询操作符 LINQ学习第二篇[转]

    一.投影操作符 1. Select Select操作符对单个序列或集合中的值进行投影.下面的示例中使用select从序列中返回Employee表的所有列: using (NorthwindDataCo ...

  4. LINQ查询操作符 LINQ学习第二篇

    一.投影操作符 1. Select Select操作符对单个序列或集合中的值进行投影.下面的示例中使用select从序列中返回Employee表的所有列: using (NorthwindDataCo ...

  5. LINQ查询操作符

    ·First - 返回集合中的第一个元素:不延迟 ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值):不延迟 ·Last - 返回集合中的最后一个元素:不延迟 ·Las ...

  6. LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Coun

    ·First - 返回集合中的第一个元素:不延迟 ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值):不延迟 ·Last - 返回集合中的最后一个元素:不延迟 ·Las ...

  7. C#编程(六十二)---------LINQ标准的查询操作符

    LINQ标准的查询操作符 首先我们来看一下LINQ的操作符,可根据查询操作符的操作”类型”进行分类,如把它们分成投影,限制,排序,联接,分组,串联,聚合,集合,生成,转换,元素,相等,量词,分割等. ...

  8. 2.3 LINQ查询表达式中 使用select子句 指定目标数据

    本篇讲解LINQ查询的三种形式: 查询对象 自定义查询对象某个属性 查询匿名类型结果 [1.查询结果返回集合元素] 在LINQ查询中,select子句和from子句都是必备子句.LINQ查询表达式必须 ...

  9. 转linq中的Single()、First()、Take(1) LINQ 标准的查询操作符 排序 orderby、thenby、Take

    Single():操作一个集合,同时强要求只有一个对象匹配,并返回这一个. First():操作一个集合,可以有多个对象匹配,但是只返回第一个. Take(1):操作一个集合,可以有对个对象匹配,单只 ...

随机推荐

  1. 不同SQL Server数据库之间的跨数据库查询

    --不同SQL Server数据库之间的跨数据库查询 EXEC sp_addlinkedserver @server=N'OldDatabase', --自己定义别名 @srvproduct=N'', ...

  2. Java——单例设计模式

    设计模式:解决某一类问题最行之有效的方法.Java中23种设计模式:单例设计模式:解决一个类在内存中只存在一个对象. 想要保证对象唯一.1,为了避免其他程序过多建立该类对象.先禁止其他程序建立该类对象 ...

  3. IT运维外包甩不掉的包袱

    对一个企业的IT信息部门来说,保证IT系统的安全.稳定和可靠运行是IT部门义不容辞的职责,但IT系统的安全.稳定和可靠是相对的,得看企业IT投入和ROI.现在企业的IT系统运维面临着多重压力:一方面是 ...

  4. Core Bluetooth【官方文档翻译】【02】

    1.中心设备和外围设备以及它们在蓝牙通讯中的角色. 在所有的BLE( Bluetooth low energy,下文简称蓝牙4.0 )通讯中都涉及2个主要的角色:中心设备和外围设备.它是基于传统的客户 ...

  5. HDU 2157 - How many ways??

    给图,图中任意可达的两点间步数为1 问从图中A点走到B点步数为k的有几条路 祭出离散数学图论那章中的 邻接矩阵A. 设S=Ak 则 S[a][b] 为 a到b,步数为k的不同路的条数 剩下的就是矩阵快 ...

  6. Git学习笔记:Git基础

    一.Git与其他版本控制系统的差别 Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异.这类系统每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容.如下图,其他 ...

  7. activity的生命周期详解

    刚在看mars老师的视频,看到activity的生命周期,就看了一下,总结了一下.下面是各函数的调用时机 为了更清楚的看清楚工作的具体过程,举例如下: ,建立两个activity,一个main,一个a ...

  8. jq插件又来了,模拟select下拉框,支持上下方向键哦

    好久没来了,更新下插件, 这个原理就是利用的 input[type='hidden']和自定义属性data-value捆绑传值操作的,可是设置默认选项,回调等参数,代码不多,比较简单,吼吼 (func ...

  9. js 函数(function)

    <Javascript高级程序设计第三版> 3.7 函数 1. ECMAScript中的函数在定义时,不必指定是否返回值. 2. 位于return语句之后的任何code都永远不会执行.(之 ...

  10. PHP字符编码问题-总结

    今天在网上看到一个人的对于php开发中字符编码的总结,感觉不错,摘录如下: 一,php编码转换        1.通过iconv()函数实现编码转换                语法:iconv(s ...