对LINQ的一些资料收集

LINQ中文版学习资料包 本文还有配套的精品资源,点击获取 简介:这套学习资料为中文用户提供了全面的LINQ知识,涵盖了LINQ的基本概念、查询表达式、数据操作、延迟执行等核心主题。PDF格式的文档详细介绍了如何将LINQ应用于各种数据源,并专门提供了***的学习资源,强调了学习LINQ对于.NET开发者提高数据操作效率和代码质量的重要性。 1. LINQ语言集成查询介绍 LINQ(... 阅读详情

 具体想看LINQ的例子可以在安装了2008后在安装路径中有M$提供的好多例子。这里主要是记录它的一些介绍。具体研究还是看微软提供的例子比较好点吧。

 

综合查询语言LINQ 是Visual Studio 2008 和 the .NET Framework version 3.5在数据开发方面一个重大的创新.他支持C#和VisualBasie两种编程语言.

LINQ有以下四方面的优势:

1.              它简化了查询实现的方式。如果你正准备去学习C#或Visual Basic,那首先要从学习写LINQ查询开始。

2.              它有统一的语法,可以查询任何一种数据源。无论是XML 文件档、SQL数据库、DataSet数据集,内存在的集合,本地的或者是远程的数据源,都可用它去实现查询。

3.              它加强了关系形数据和实例对象的联系。它可以做为一强名称工具和设计工具去创建对象和数据间的关联。

4.              它能在程序编译捕捉到异常,缩短项目的开发时间。

LINQ标准操作简单介绍

LINQ标准操作是LINQ综合查询语言模型中的一系列方法。大部分方法都是操作实了IEnumerable(Of T) 接口或 th interface IQueryable(Of T).接口对象的序列。这些操作可以实现查询的聚合、排序、过滤、投影等功能。

LINQ标准操作之间的不同在于它们的执行时间和返加的数据是单个值还是一组序列。返回值为单值的方法(聚合函数Sum,Average)它们将会在调用时立即执行;返回值为一组系列的方法,它们将会依懒于查询语句的执行。

下面看看看简单的例子:对字符串数组进行分组,查询,排序!

        class Program

    {

        static void Main(string[] args)

        {

            string sentence = "This i a simle LINQ DEMO!";

            string[] words = sentence.Split(' ');

            var query = words.

                GroupBy(w => w.Length, w => w.ToUpper()).

                Select(g => new { Length = g.Key, Words = g }).

                OrderBy(o => o.Length);

            foreach (var obj in query)

            {

                Console.WriteLine("单词的长度 {0}:", obj.Length);

                foreach (string word in obj.Words)

                    Console.WriteLine(word);

            }

            Console.Read();

        }

}

LINQ查询操作必备三部曲

  查询就是一种从数据源获取数据的表达式。这种表达式在不同语言中有不同的定义。不同的语言面向不同的数据源,比如说SQL 是面向关系型数据库,XQuery面向XML。因此,开发员人需要为从新数据源或数据格式中获取数据而要学习不同的查询表达式语法。LINQ定义了统一的语法可从不同数据源或数据格式中获取数据,从而减少了开发员人学习的负担,减少了工作量。在LINQ查询中,不管什么数据源,都可以看做为一个对象。你可以使用同样的代码在XML文件,SQL数据库,ADO。NET 数据集,.NET 集合类型,其它数据源或数据格式中查询和传输数据。

所有LINQ查询操作都必包含以下三方面内容:

1. 获取数据源

2. 创建查询

3. 执行查询

下面那张图展示了LINQ查询操作中基本三部分内容这间的依懒关系。从图中可看出,在执行查询操作中必须有查询语语的存在,否则不能从数据源中获取数据。只有创建了查询,执行操作才会对数据进行迭代式处理。




下面看看怎么用代码实现LINQ查询操作基本的三个方面:


static void Main(string[] args)

        {

            // 数据源

            int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

            // 创建查询

            IEnumerable<int> numQuery =

                from num in numbers

                where (num % 2) == 0

                select num;

            // 执行查询

            foreach (int j in numQuery)

            {

                Console.Write("{0,1} ", j);

            }

            Console.Read();

        }
=============================================================

LINQ基本操作


首先我们创建2个类,一个Category,一个Product


public class Product

    {

        public string Name { get; set; }

        public int CategoryID { get; set; }

    }

public class Category

    {

        public string Name { get; set; }

        public int ID { get; set; }

    }




  然后创建2个List的数据源     

static List<Category> categories = new List<Category>()

        {

            new Category(){Name="Beverages", ID=001},

            new Category(){Name="Condiments", ID=002},

            new Category(){Name="Vegetables", ID=003},

            new Category(){Name="Grains", ID=004},

            new Category(){Name="Fruit", ID=005},

            new Category(){Name="Other", ID=006}

        };



      static List<Product> products = new List<Product>()

      {

          new Product{Name="Cola",  CategoryID=001},

          new Product{Name="Tea",  CategoryID=001},

          new Product{Name="Mustard", CategoryID=002},

          new Product{Name="Pickles", CategoryID=002},

          new Product{Name="Carrots", CategoryID=003},

          new Product{Name="Bok Choy", CategoryID=003},

          new Product{Name="Peaches", CategoryID=005},

          new Product{Name="Melons", CategoryID=007},

        };


好了,现在我们开始使用LINQ了,下面使用的表达式和方法的结果是一样的,这里的方法指Lambda表达式

l  使用排序

1.        使用排序时使用的显示语句             

foreach (var c in orderByResult)

                Console.WriteLine("ID={0},Name={1}", c.ID, c.Name);


2.        升序

        表达式



var orderByResult = from c in categories
                            orderby c.ID //默认为升序,也可以在后面加上ascending
                            select c;
            方法

var orderByResult = categories.OrderBy(c=>c.ID);
3.    降序

    表达式   

var orderByResult = from c in categories
                    orderby c.ID descending
                    select c;

    方法 

var orderByResult = categories.OrderByDescending(c=>c.ID);

4.    多个属性的升序

    表达式

var orderByResult = from c in categories

                    orderby c.ID,c.Name

                    select c;


    方法

var orderByResult = categories.OrderBy(c=>c.ID).ThenBy(c=>c.Name);

5.    多个属性的降序排列

    表达式         

var orderByResult = from c in categories

                    orderby c.ID, c.Name descending

                    select c;


    方法

var orderByResult = categories.OrderByDescending(c=>c.ID).ThenByDescending(c=>c.Name);
=======================================================================

LINQ是什么?
它是Language Integrated Query。
当我们要对数据库表进行查询的时候,我们一定会编写"select * from sometable where ID = .."的语句。好,那我们现在根据LINQ的语法,完全可以将我们熟悉的SQL中像"select","from","where"等语句在.NET Framework环境中顺利使用并且大大提高开发的效率。

下面我就牛刀小试,做个demo看看。

1. 先下载LinQ框架 
    现在最新版本是2006年5月发布"Orcas CTP", 下载地址(这里 )

2. 下载安装待完毕。

3. 新建一个"LINQ Console Application"项目。

4. 输入代码如下:   

 1
 2 using  System;
 3 using  System.Collections.Generic;
 4 using  System.Text;
 5 using  System.Query;
 6 using  System.Xml.XLinq;
 7 using  System.Data.DLinq;
 8
 9 namespace  LINQConsoleApplication1
10 {
11    class Program
12    {
13        static void Main(string[] args)
14        {
15            string[] aBunchOfWords = {"One","Two", "Hello", "World", 
16
17"Four", "Five"}
;
18            var result = 
19            from s in aBunchOfWords // query the string array 
20            where s.Length == 5     // for all words with length = 5
21            select s;               // and return the string
22            foreach (var s in result) {
23                Console.WriteLine(s); //print
24            }

25        }

26    }

27}

28
29


运行结果如下:
Hello
World
print any key to continue ...

OMNET++ INET框架学习教程(一) 在自组网学习的道路上摸石头过河,帮你快速入门OIMNET++平台下的INET框架。 阅读详情

相关推荐

手把手教你用RoboTwin训练RDT模型:从环境配置到实战微调(避坑指南)

本文提供了一份详尽的避坑指南,手把手教你如何在RoboTwin开源仿真环境中,从零开始配置环境、采集数据并完成RDT视觉语言动作模型的实战微调。文章涵盖了环境搭建、数据流水线构建、模型配置与训练等关键步骤,旨在帮助研究者和开发者高效利用仿真数据,低成本探索具身智能应用。

weixin_29094979的博客 131

linq资料(收集)

http://www.cnblogs.com/126/archive/2007/10/15/924858.html博客园

fuda_1985的专栏 282

ALSA音频开发实战:如何用snd_pcm_avail避免缓冲区溢出(附完整代码)

本文深入探讨了在ALSA音频开发中,如何利用`snd_pcm_avail`函数有效管理环形缓冲区,从而避免音频数据溢出或下溢。通过实战代码示例,详细解析了该函数在播放场景下的核心作用,即实时查询可写入的帧数,并构建了自适应写入循环以实现稳健的流量控制,确保音频流的平滑与稳定。

weixin_29183637的博客 461

推荐一些关于C#中LINQ的学习资料

LINQ入门及应用》由清华大学出版社于2009年5月出版,作者是高级软件工程师王的强。

qq_25699299的博客 765

双目视觉入门实战:用Matlab标定相机,再到Python OpenCV完成测距的完整链路

本文详细介绍了双目视觉技术的完整实现流程,从Matlab相机标定到Python OpenCV测距的全链路实践。重点解析了Matlab与OpenCV的参数转换技巧,以及立体校正、视差计算等关键步骤的代码实现,帮助开发者快速掌握双目测距系统的搭建方法。

weixin_29166013的博客 445

LSTM cell结构的理解和计算

LSTM是传统RNN网络的扩展,其核心结构是其cell单元,网上LSTM的相关资料繁多,质量参差不齐,下面主要结合LSTM神经网络的详细推导和 Christopher Olah的blog两篇文章中的内容进行说明。主要介绍网络如何计算,为何这么算先不展开:)。前者一副图加上29个公式,简洁明了;后者娓娓道来,适合初学者。首先是LSTM cell最常见的结构图: 这是变形的版本(找不到更清晰的版本了),

songhk0209的博客 2万+

LINQ 入门

本文对 C# 语言集成查询(LINQ)中涉及到的一些基本概念进行了介绍。

YMGogre的博客 1061

CSP-J 入门级第一轮认证 2025 详细解析

2025年CSP-J入门级第一轮认证模拟赛提供10套免费试题,含选择题与解析。选择题涉及计算机科学基础,如32位无符号整数最大值计算(约42.9亿,选A)、C++位运算(255&254=254,选B)、递归函数分析(calc(5)=6,选B)、哈夫曼树构造(带权路径长度186,选B)等。其他题目涵盖图论(有向图边数等于入度/出度和,选B)、组合数学(120种选法,选C)、布尔逻辑(选项C不恒等)、模运算周期性(f[2025]=6,选D)、C++字符串特性(支持string+char,选B)及引用传参

lan_in的博客 2939

linq方法语法--学习linq的资料和笔记(二)

以下文章摘自博客园life a poem 的博客 书写LINQ查询时又两种语法可供选择:方法语法(Fluent Syntax)和查询语法(Query Expression)。 LINQ方法语法是非常灵活和重要的,我们在这里将描述使用链接查询运算符的方式来创建复杂的查询,方法语法的本质是通过扩展方法和Lambda表达式来创建查询。C# 3.0对于LINQ表达式还引入了声明式的查询语法,通

学无止境 2877

【编译原理】LL(1)分析方法 生成语法树(c++实现)

基本流程 输入文法->消除左递归->提取左公共因子->求FIRST集->求FOLLOW集->LL(1)分析表->表驱动的预测语法分析过程->输出语法分析结果和语法树

qq_43417265的博客 1万+

java爬虫(爬取银行理财数据)

import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; imp

ROCK 2490

【LINQ语句】LINQ语句

对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)Java面试精选题、架构实战文档你的支持,我的动力;祝各位前程似锦,offer不断!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!你的支持,我的动力;

VIP129370的博客 1034

Apollo Planning决策规划算法代码详细解析 (1):Scenario选择

本文重点讲解Apollo代码中怎样配置Scenario以及选择当前Scenario,Scenario决策是Apollo规划算法的第一步,本文会对代码进行详细解析,也会梳理整个决策流程,码字不易,喜欢的朋友们麻烦点个关注与赞。 在本文你将学到下面这些内容: 规划器planer的种类; 规划器planer的主要函数及逻辑; 场景管理类ScenarioManager的运行机制; 场景注册方法; 场景决策流程,如何选择当前场景 详细的apollo决策规划代码分析 代码具体过程如下: 1、Scenar

自动驾驶Player的博客 1万+

LinQ是什么?

 LinQ是什么?•LINQ(发音:Link)是语言级集成查询(Language INtegrated Query) •LINQ是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询 •LINQ的目标是降低访问数据的复杂度 •LINQ可以用统一的方法访问不同类型的数据,可以将数据作为对象使用 •能够更好地与编程模型集成 •可以在Visual Studio中进

sytWeibo的专栏 5192

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

最佳ASP.net之LINQ学习资料

在使用LINQ过程中偶然有点心得想记录下来,没想到查阅到一个非常好的网站,直接转载了。1. 【推荐】LINQ系列文章,适合按部就班学习或查阅http://kb.cnblogs.com/page/42465/本系列文章导航LINQ to SQL语句(1)之WhereLINQ to SQL语句(2)之Select/DistinctLINQ to SQL语句(3)之Count/Sum/Min...

weixin_30736301的博客 173

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

linq的延迟执行--学习linq的资料和笔记(四)

延迟执行的实现 是因为使用了IEnumerable的这种枚举进行迭代!  如:方法 public static IEnumerable getString() { for (int i = 0; i < 10; i++) { yield return "s" + i; }

学无止境 1281

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LINQ准备篇--学习linq的资料和笔记(一)

学习linq 的前提知识: (1).var 隐式推断类型, VAR 是3.5新出的一个定义变量的类型 其实也就是弱化类型的定义 VAR可代替任何类型 编译器会根据上下文来判断你到底是想用什么类型的 使用var定义变量时有以下四个特点: 1. 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式: var s; s = “abcd”; 2

学无止境 2248

linq 书籍推荐 博客汇总 (经典)

1.博客推荐 博客园linq专区 https://kb.cnblogs.com/zt/linq/ LINQ体验系列文章导航 https://www.cnblogs.com/lyj/archive/2008/03/24/1119671.html linq学习之旅 https://www.cnblogs.com/xiashengwang/tag/Linq/ 一步一步学...

weixin_30653097的博客 400

當VS2005 遇上 LINQ

 當VS2005 遇上 LINQ 文/黃忠成  在【極意之道-次世代 .NET Framework 3.5 資料庫開發聖典】(好長的書名,我該取個匿稱嗎?哈)一書第三章中,有下面這段敘述: 任何支援.NET Framework 2.0的程式語言都能夠叫用LINQ所提供的查詢函式,也就是

黄忠成 1万+

linq实战与相关资料

1.LINQ:Language Integrated Query 语言集成查询,其本质是对ADO.NET结果集通过反射连同泛型特性转换成对象集,实现OR模型的转换(类似JAVA中Hibernate框架,.NET中的NHibernate),它完全是基于.NET 2.0 的框架。2.优点在于封装了SQL语句,只对对象进行操作(添加、删除、修改和查询),代码量大大减少,让我们重点关心业务逻辑,而非代码上,把我们引入到面向对象编程方式上来;缺点在于追求效益的同时牺牲了性能,比起ADO.NET 性能稍差(ADO.NE

O Wen 864

什么是LINQ?

LINQ(Language Integrated Query,语言集成查询)是一项微软的技术,新增一种自然查询的SQL语法到.NET Framework 的编程语言中,当前可支持C#以及Visual Basic .NET语言。

LINchuana的博客 1286

Linq学习资料

1. 一步一步学Linq to sql系列文章: http://www.cnblogs.com/lovecherry/archive/2007/08/13/853754.html 2. LINQ专题:http://kb.cnblogs.com/zt/linq/ 关于LINQ方方面面的入门、进阶、深入的文章。 3. LINQ小组:http://space.cnblogs.co...

107

如何在LINQ中使用TSQL的IN或NOT IN

LINQ是微軟新一代的查詢語言,用來讓程式設計師不需要懂資料庫或SQL命令就可以對資料進行新增、查詢、修改及刪除,以LINQ TO SQL或是以LINQ TO Entity連接SQL SERVER,實際在執行時仍會被轉成ADO.NET,進而以標準TSQL語法來對資料進行異動,本文將介紹在LINQ中如何使用SQL的IN或NOT IN敘述來篩選資料。 以Northwind資料庫最單純的Regio

wyj1986的专栏 947

Linq学习资料汇集

感谢博客园里的高手,在此总结博客园中的linq学习资料,从基础开始,逐步提高。1,Linq简介http://kb.cnblogs.com/page/42597/

zhaoguiqun的专栏 801

LINQ To Objects 的資料來源

 LINQ To Objects 的資料來源 文/黃忠成     在LINQ To Objects的架構中,只要實作了IEnumerable介面的物件,皆可做為LINQ To Objects的資料來源,那具體有那些呢?見下表。 型別

黄忠成 2608

C#学习——LINQ

C#学习——LINQC#学习——LINQ查询表达式LINQ 理论LINQ 与 SQL 的区别与联系LINQ 分类LINQ 查询的四个要素LINQ 初级实例协变与逆变LINQ 综合实例 学习资料来源于B站up主花千芳的视频:https://www.bilibili.com/video/BV1xJ411g7Hm C#学习——LINQ 查询表达式 查询表达式必须以 from 字句开头,以 select 或 group 字句结束。第一个 from 子句和最后一个 select 子句或group 子句之间,可以包含一

SQWH_SSGS的博客 666
上一篇: 水晶报表注册码
下一篇: 智能客户端应用学习系列:SmartClient Software factory中的Composite UI Application Block(Cab)技术了解(十):异步调用,离线处理,队列管理的关系
simonllf
博客等级 码龄23年 23粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值