概念:“查询”也是一种指令,使用这组指令可以从给定的一个或多个数据源中检索数据,并以指令的形式返回结果。Linq也是一种查询,可以为编程语言提供强大的方便的查询功能,并与其合为一体。

Linq的强大体现在它的简洁 方便的代码量。比如要筛选出list中一个属性的元素,相对于list就要遍历判断;但是你用linq就只需要一句。但是这也会造成一些问题,导致后期比人维护你的项目造成麻烦(哪有最好的东西呀,双刃剑吧 哈哈)

From:子句被查询的数据源(相当于for循环)

Where:子句指定元素所满足的过滤条件(相当于if判断)

orderby:表现方式(相当于排序方式,升序、降序。。。)

Select:子句制定查询结果的表现形式,(相当于return)

下面用代码来说明问题:

// Linq  Query语句

int[] numbers = { 12, 23, 34, 45, 56, 67 };
            var numQuery = from num in numbers
                           where num % 2 == 0
                           orderby num ascending // ascending 升序(可省略)
                           select num;
            foreach(var n in numQuery)
            {
                Console.WriteLine(n);
            }

// Linq Method语句

var numMethod = numbers.Where(n => n % 2 == 0).OrderBy(n => n);
            foreach(var n in numMethod)
            {
                Console.WriteLine(n);
            }

注意:以上两个语句的代码量相差还是有点大的,Query将每块逻辑分开,而Method将所有逻辑集中于一行来实现。

into、let关键字

// Linq  into关键字

List<Peo> peoList = new List<Peo>();
            peoList.Add(new Peo() { name = "lizhi", city = "shanghai" });
            peoList.Add(new Peo() { name = "linqingxia", city = "beijing" });
            peoList.Add(new Peo() { name = "liuyifei", city = "shanghai" });
            var intoLinq = from num in peoList
                           group num by num.city into groupnum
                           where groupnum.Count() >= 2
                           select new { city = groupnum.Key, number = groupnum.Count() };
            foreach(var i in intoLinq)
            {
                Console.WriteLine(i.city + "---" + i.number);
            }

以上示例:into 字面解释意为“打入”,以上事例将遍历proList得到的num筛选出city属性放入groupnum中,这里的groupnam可以看作是一个集合,这个集合存的是city属性。

// Linq  let关键字

string[] strings = { "hello world.", "lin qing xia", "wang zu xian" };
            var strs = from s in strings
                       let words = s.Split(' ')
                       from word in words
                       let w = word.ToUpper()
                       select w;
            foreach(var s in strs)
            {
                Console.WriteLine(s);
            }

以上示例:将遍历的元素进行处理,并将处理结果存放到words,这里的words也可看作一个集合(可以这样理解,具体自己去发掘 嘿嘿)

注意:Linq虽然方便,但是并不是适用于所有的条件筛选或者排序。比如背包、商城的根据什么什么排序之类的了。有一些项目会明显指出不可用linq进行排序。貌似是引用底层涉及到太多的拆装箱操作吧 貌似(楼主也是小菜一枚,欢迎改正)

C# Linq基本操作以及into、let关键字相关推荐

  1. linq php,C#开始使用 LINQ (上)

    LINQ 简介 语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一项创新功能. 传统上,针对数据的查询都是以简单的字符串表示, ...

  2. Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解

    本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to Entities 使用LINQ to Entities操作实体 L ...

  3. C#高级编程9 第11章 Linq

    Linq 1.Linq概述 列表和实体 准备数据: public class Championship{public int Year { get; set; }public string First ...

  4. (10)根据关键字搜索

    问题 当排序和分页和过滤都不够帮用户去找到他们想要的结果时,想一个最好的备选方式是让用户输入(关键字)他们想要什么. 解决方案 用HtmlHelper创建一个新的From和 文本输入框,并且借助LIN ...

  5. 在 SharePoint 2010 中访问数据

    数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用 LINQ to SharePoint | LINQ to SharePoint ...

  6. 一步一步学Entity Framework 4(2)

    上一期博客末尾给出了一个静态类,四个静态方法.这有什么用呢?在继续进行其他内容前,我们先利用这些静态方法为数据库生成基础数据.按照ADO.NET的常规方法,需要先建立连接,创建DataSet或Data ...

  7. 2007年4月 [Update to 4.27]

    1.VS2005辅助工具整理 http://blog.csdn.net/mengyao/archive/2007/03/24/1539699.aspx 介绍了Reflector.FileDisasse ...

  8. 【数据结构(C语言)】数据结构-内部排序

    内部排序 文章目录 内部排序 一.概述 (1)排序定义 (2)稳定性 (3)内部排序和外部排序 (4)两种基本操作 (5)数据类型定义 二.分类 (1)插入排序 (2)交换排序 (3)选择排序 (4) ...

  9. Pro ASP.NET MVC –第四章 语言特性精华

    C#语言有很多特性,并不是所有的程序员都了解本书我们将会使用的C#语言特性.因此,在本章,我们将了解一下作为一个好的MVC程序员需要了解C#语言的特性. 每个特性我们都只是简要介绍.如果你想深入了解L ...

最新文章

  1. selinux关闭后mysql_centos下关闭selinux不重启的方法
  2. 天津2021年高考成绩查询入口,2021年天津高考成绩查询时间安排 什么时候出分
  3. 把一维数组处理成二维数组
  4. java design按钮_DesignJava 设计模式,讲述 的各种 方便在项目中进行 框架结构 Develop 238万源代码下载- www.pudn.com...
  5. sqlserver 过滤html,sqlserver 过滤掉某些字段查询剩余字段的方法
  6. sqlserver递归
  7. java-将xlsx(excel)文件转换成json
  8. java遍历session_java中遍历session问题
  9. ListListmodel如何更快捷的取里面的model?
  10. nginx 代理ssh
  11. gartner 服务器虚拟化 市场份额 2013,Gartner:VMware成虚拟化魔力象限领导者
  12. Win10上注册OCX文件
  13. 在线怎么把pdf文件转换成word文件转换器使用
  14. 安全牛:安全与业务不存在平衡 证明价值是关键
  15. matplotlib 3D绘图警告;MatplotlibDeprecationWarning: Axes3D(fig) adding itself to the figure is deprecate
  16. 【测评】国外AR平台ENTITI测评-网页编辑器(1)
  17. html之div中id和class的区别
  18. php 课程设计总结心得体会,课程设计心得体会
  19. 如何修清净心?(净空老法师法语)
  20. 如何使用Synplify综合vivado带IP核的工程

热门文章

  1. 2018年医疗大数据系统演进架构图解
  2. DELL E7240超极本
  3. 写代码神器!笔记本追剧办公贼爽,包邮送一台!
  4. 如何把你的蓝牙耳机同时同地给两台不同的设备使用
  5. 分享一个纯css灯笼
  6. gif图片制作器,一键生成gif图
  7. JVM原理和调优(读这一篇就够了)
  8. 百度移动端开始用网站品牌名代替网址显示
  9. 百果园、洪九果品相继递表,水果生意有多“吃香”?
  10. 【BI学习作业11-资金流入流出预测】