首页 > 其他分享 >光脚丫学LINQ(013):LINQ查询语法与方法语法

光脚丫学LINQ(013):LINQ查询语法与方法语法

时间:2023-06-30 21:03:00浏览次数:104  
标签:013 Console LINQ 查询 语法 num 方法


视频演示:http://u.115.com/file/f2f1e1a2f4

 

通过使用 C# 3.0 中引入的声明性查询语法,介绍性 LINQ 文档中的多数查询都被编写为查询表达式。但是,.NET 公共语言运行时 (CLR) 本身并不具有查询语法的概念。因此,在编译时,查询表达式会转换为 CLR 确实了解的内容:方法调用。这些方法称为“标准查询运算符”,它们具有如下名称:Where、Select、GroupBy、Join、Max、Average 等。 可以通过使用方法语法而非查询语法来直接调用这些方法。
通常我们建议使用查询语法,因为它通常更简单、更易读;但是方法语法和查询语法之间并无语义上的区别。此外,一些查询(如检索匹配指定条件的元素数的那些查询或检索具有源序列中的最大值的元素的查询)只能表示为方法调用。System.Linq 命名空间中的标准查询运算符的参考文档通常使用方法语法。因此,即使在开始编写 LINQ 查询时,熟悉如何在查询和查询表达式本身中使用方法语法也非常有用。
   
标准查询运算符扩展方法
下面的示例演示简单的查询表达式和编写为基于方法的查询的语义上等效的查询。

static void Main(string[] args)
{
    int[] Numbers = { 5, 10, 8, 3, 6, 12 };

    // Query syntax:
    IEnumerable<int> NumQuery1 =
        from num in Numbers
        where num % 2 == 0
        orderby num
        select num;

    // Method syntax:
    IEnumerable<int> NumQuery2 =
        Numbers.Where(num => num % 2 == 0).OrderBy(n => n);

    foreach (int i in NumQuery1)
    {
        Console.Write(i + " ");
    }
    Console.WriteLine(Environment.NewLine);
    foreach (int i in NumQuery2)
    {
        Console.Write(i + " ");
    }

    // Keep the console open in debug mode.
    Console.WriteLine(Environment.NewLine);
    Console.WriteLine("Press any key to exit");
    Console.ReadKey();

}

两个示例的输出是相同的。您可以看到两种形式的查询变量的类型是相同的:IEnumerable<T>。

标签:013,Console,LINQ,查询,语法,num,方法
From: https://blog.51cto.com/u_16173572/6593749

相关文章

  • 光脚丫学LINQ(014):LINQ to SQL简介
    视频演示:http://u.115.com/file/f29f7838f6 LINQtoSQL是.NETFramework3.5版的一个组件,提供了用于将关系数据作为对象管理的运行时基础结构。说明关系数据显示为由二维表(关系或平面文件)组成的集合,其中公共列将表互相关联起来。若要有效地使用LINQtoSQL,您必须略为熟悉关......
  • 光脚丫学LINQ(012):LINQ查询操作中的类型关系
    视频演示:http://u.115.com/file/f2458259e9 若要有效编写查询,您应该了解完整的查询操作中的变量类型是如何全部彼此关联的。如果您了解这些关系,就能够更容易地理解文档中的LINQ示例和代码示例。另外,还能了解在使用var隐式对变量进行类型化时的后台操作。LINQ查询操作在数据源......
  • 光脚丫学LINQ(009):选择各个源元素的子集
    视频演示:http://u.115.com/file/f2d7193f3a 选择源序列中的各个元素的子集有两种主要方法:1、若要只选择源元素的一个成员,请使用点运算。在下面的示例中,假定Customer对象包含几个公共属性,其中包括名为City的字符串。在执行此查询时,此查询将生成字符串输出序列。NorthwindDataCo......
  • Java-语法基础
    JDK8复习用Java前置知识JavaSEJavaStandardEdition标准版支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API此版本以前称为J2SEJavaEEJavaEnterpriseEdition企业版一套用于企业环境下的应用程序的应用方案(包含:Servlet、Jsp),主要针......
  • Java基础语法
    1、Java的八种基本数据类型1、byte1字节取值范围:-128~1272、short2字节取值范围:-32768~327673、int4字节取值范围:-231~231-1#int是开发中最常用的,也是Java中默认的数据类型4、long8字节取值范围:-263~263-1#声明超过int取值范围的lon......
  • [代码]DOM和LINQ to XML创建XML树的三种方式
    此代码主要示范了DOM和LINQtoXML三种创建XML树的方式。第01种、使用W3CDOM创建XML树可以使用XmlDocument.CreateElement()方法创建XML元素。使用XmlElement.InnerText为元素添加内容,比如在元素的开始标记和结束标记之间添加字符串内容。使用XmlElement.SetAttribute()方法为元素......
  • 光脚丫学LINQ(041):使用对象关系设计器修改映射关系
    演示视频:http://u.115.com/file/f2b86d8eab演示重点此演示视频主要介绍了如何使用VS提供的【对象关系设计器】这个工具来建立实体类之间的关系。虽然此工具可以自动根据数据表之间的关系来建立起对象模型中实体类与实体类之间的关系。然而,默认情况下,它所建立的关系貌似都是清一色的......
  • N层研习记录01:试图通过Boolean参数控制并发冲突的检查方式(LINQ to SQL)
    作者:光脚丫思考版权所有,转载请注明出处!^_^此研习用到的测试代码可通过以下两个地址下载,如果不能下载,请留言通知我。下载地址02:http://u.115.com/file/f26716bcc2如果你只想快速的查看测试代码的主题部分,或者想更具体的了解测试的详细记录,则可以参看另一篇名为《N层研习中的测试代......
  • [代码]使用LINQ的查询结果填充XML树(LINQ to XML)
    此代码使用的是LINQtoXML的函数构造功能创建一个XML树,其中树中的一些元素是通过LINQ查询结果填充。实际上,通过本例也可以看到如何使用LINQtoXML将原始XML文档转换成为另外一种XML文档。下面代码中使用的PurchaseOrder.xml文档内容:<?xmlversion="1.0"?><PurchaseOrderPurchas......
  • [代码]创建XDocument对象(LINQ to XML)
    LINQtoXML中的XDocument是用来表示内存中的XML文档的。同样可以使用函数构造功能来创建此对象。此示例代码主要用来演示如何创建一个通用的XML文档。示例代码代码中创建的XDocument对象,包含了2个注释(XComment),1个处理指令(XProcessingInstrucation),1个根元素及其若干子元素,也为......