LINQ查询表达式(1) - 查询表达式基础

什么是查询?它有什么用途?

  “查询”是指一组指令,这些指令描述要从一个或多个给定数据源检索的数据以及返回的数据应该使用的格式和组织形式。 查询不同于它所产生的结果。
通常,源数据会在逻辑上组织为相同种类的元素序列。 SQL 数据库表包含一个行序列。 与此类似,ADO.NET DataTable 包含一个 DataRow 对象序列。 在 XML 文件中,有一个 XML 元素“序列”(不过这些元素按分层形式组织为树结构)。 内存中的集合包含一个对象序列。
从应用程序的角度来看,原始源数据的具体类型和结构并不重要。 应用程序始终将源数据视为一个 IEnumerable<T> 或 IQueryable<T> 集合。 在 LINQ to XML 中,源数据显示为一个 IEnumerable<XElement>。 在 LINQ to DataSet 中,它是一个 IEnumerable<DataRow>。 在 LINQ to SQL 中,它是您定义用来表示 SQL 表中数据的任何自定义对象的 IEnumerable 或 IQueryable。

查询结果:

检索元素子集,产生新的序列,不修改单个元素,可以对其进行分组、排序

 IEnumerable<int> highScoresQuery =
                from score in scores
                where score > 80
                orderby score descending
                select score;

检索元素子集,转换元素类型

 IEnumerable<string> highScoresQuery2 =
                from score in scores
                where score > 80
                orderby score descending
                select String.Format("The score is {0}", score);

检索有关源数据的单一值

int highScoreCount =
                (from score in scores
                 where score > 80
                 select score)
                 .Count();

-or-

IEnumerable<int> highScoresQuery3 =
                from score in scores
                where score > 80
                select score;

            int scoreCount = highScoresQuery3.Count();

参考

  [1] MSDN,LINQ查询表达式

时间: 2024-11-13 17:02:13

LINQ查询表达式(1) - 查询表达式基础的相关文章

编写高质量代码改善C#程序的157个建议——建议27:在查询中使用Lambda表达式

建议27:在查询中使用Lambda表达式 LINQ实际上是基于扩展方法和Lambda表达式的.任何LINQ查询都能通过扩展方法的方式来代替. var personWithCompanyList = from person in personList select new { PersonName = person.Name, CompanyName = person.CompanyID==0?"Micro":"Sun" }; foreach (var item in

Lambda表达式和查询表达式(1)基本概念

Lambda表达式也是一种匿名函数(anonymous function),比匿名方法具有更加简洁的表示形式.它可以包含表达式和语句,并且适用于创建委托和事件. 查询表达式: 是一种使用查询语法表示的表达式,它可以从一个或多个给定的数据源中检索数据,并制定检索结果的表现形式. Lambda表达式:  由输入参数.Lambda运算符和表达式(或语句块)构成. 它的语法形式如下: (input parameters) => empression; : input parameters : 表示输入参

Scala深入浅出实战经典《第87讲:Scala中使用For表达式做查询》笔记

如知其非义,斯速已矣! 第87讲:Scala中使用For表达式做查询 Goal: For表达式做查询 Gains: for循环的应用 自定义一种类型,根据这种类型创建了一个List数组 针对数组中的内容,利用for循环可以进行相关的查询 More: 使用for循环来做查询~ ------------------------------------------------------------------------------------ 信息来源于 DT大数据梦工厂微信公众账号:DT_Spa

Scala中使用For表达式做查询

学习了Scala中使用For表达式做查询,很多编程中对数据库.文件.网络数据进行查询,应用for表达循环匹配,例子如下: Case calss Book (title:String, authors:List[tring]) Object For_Query { Def main(args:Array[String]) { Val books : List[Book]=List( Book(“Structure and Interpretation”, List(“Abelson,Harold”

LINQ中的一些查询语句格式

LINQ的基本格式如下所示:var <变量> = from <项目> in <数据源> where <表达式> orderby <表达式> LINQ 基本子句from查询子句——基础后面跟随着项目名称和数据源示例代码如下:var str = from lq in str select lq; 其中select语句指定了返回到集合变量中的元素是来自哪个数据源的 from查询子句——嵌套查询可以在from子句中嵌套另一个from子句即可,示例代码如下

Linq使用技巧及查询示例(一)

Linq的使用大体分为两种:语句表达式   和  方法 首先,我们要在控制器中定义好context 1 private ApplicationDbContext db = new ApplicationDbContext(); //读写模式 2 3 private readonly ApplicationDbContext db = new ApplicationDbContext(); //只读模式 以下两种为等效查询: 语句查询 1 var qiyes = from qy in shilis

LINQ中的高级查询

LINQ查询方法: 1.Method Syntax查询方法方式:主要利用System.Linq.Enumerable类定义的拓展方法和Lambda表达式方法进行查询. 2.Query Syntax查询语句方式. 查询语句和查询方法的关系:编译器负责在编译时将查询语句便以为查询方法,大部分的查询方法都有对应的查询语句姓氏.一般情况下,我们会使用查询语句+查询方法的混合方式进行查询. 常见的高级查询方法分为:聚合.排序.分区.集合.生成. Ⅰ聚合类: <span style="font-siz

LINQ——语言级集成查询入门指南(1)

本文主要是对语言级集成查询或简称为LINQ做一个介绍,包括LINQ是什么,不是什么,并对它在语言特性方面做一个简短的回顾,然后举一些使用LINQ的实际例子进行说明. 语言级集成查询是什么? 在我过去写的大多数文章中,即使是最早的一篇文章(数据库独立的数据访问),也总是涉及到访问和操纵数据,通常,数据是存储在数据库中的,但也有其他种类访问和操纵数据如数据文件,事件日志,注册表等的方式,查询和操纵数据是许多应用程序通用的部分. LINQ(经常听到有人发音与link一样)在数据访问方面向前推进了一大步

EF删除,查询,Linq查询,Lambda查询,修改链接字符串

(1)//删除操作 public bool delete() { try { a_context = new AEntities(); b1 = new Table_1(); //删除只需要写主键就行了 b1.id = 3; a_context.Entry<Table_1>(b1).State = EntityState.Deleted; a_context.SaveChanges(); return true; } catch (Exception) { return false; } }

Linq表达式、Lambda表达式你更喜欢哪个?

什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在<深入理解C#>中称为点标记. 查询表达式.点标记你更喜欢哪个? 所以,我们的标题的提问根本就不合适.应该是"查询表达式和点标记你更喜欢哪个?".如: //查询表达式 var students1 = from t in db.Students where t.Name == &q