• 用LINQ在集合中查询特定对象


    这里是原文出处

    简单的概括LINQ

    LINQ是Language-Integrated Query的缩写,是C# 3.0和VB 9.0中新加入的语言特性,可以在编程时使用内置的查询语言进行基于集合的操作。

    复制代码
    List<User> userList = GetUserList();
    var userWithOddId = from u in userList
                        where u.UserID % 2 == 1
                        select u;
     
    foreach (User u in userWithOddId)
    {
        Console.WriteLine(u.UserName);
    }
    复制代码

    如果没有LINQ,要筛选出ID为奇数的User对象则需要创建一个List,然后遍历整个列表,将符合特定条件的User对象放入新列表。而有了LINQ,这部分的筛选就变得非常容易,甚至只需要一句话就能完成。如果觉得这个例子不够说明LINQ对生产力有重大贡献的话,请关注我接下来的一篇文章(暂定名为《我们为什么要拥抱LINQ》)。LINQ特指形如上面这段代码中from...where...select这样的用法,其返回值是IQueryable<T>或IEnumerable<T>。

    LINQ to SQL是.NET 3.5内置的一个轻量级O/R Mapping解决方案,可以将数据表映射为实体对象,方便开发人员对数据库的操作。可见,LINQ to SQL实只是LINQ的一个实现,提供了一个可以查询SQL Server数据库的LINQ Provider。

    LINQ Provider是LINQ查询的执行器,标准LINQ语法支持许多的操作符,但是某个具体的LINQ实现可能只支持其中的一部分。在.NET 3.5默认提供了三种LINQ Provider,分别是LINQ to Object(即上面的例子),LINQ to SQL以及LINQ to XML。

    LINQ to XXX表示使用LINQ针对XXX这种数据进行查询的解决方案。我们可以自定义LINQ Provider,使用我们自定义的查询规则来处理特定数据集。目前互联网上已经可以找到数十种LINQ Provider(如LINQ to Flickr,LINQ to NHibernate等),而已经处于beta 3阶段的ADO.NET Entity Framework,最终也会提供一个LINQ Provider,叫做“LINQ to Entities”。

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    使用LINQ可以提高集合的操作效率,方便在特定的集合中寻找单条记录,避免使用foreach循环,频繁的数据库查询,可以根据实际的开发case适当的使用。

    开发中需要循环处理一个集合中的每条数据时,我们可以把相应的数据统一放到内存的一个List集合中,然后使用LINQ获取单条记录进行业务处理。这样会比使用froeach遍历或者从数据库中的单条查询效率快很多

    参考阅读:LinQ专题

    http://www.cnblogs.com/lyj/archive/2008/01/20/1046196.html

  • 相关阅读:
    无缝衔接 gRPC 与 dubbo-go
    阿里员工一天有26小时,怎么做到的?
    小米流式平台架构演进与实践
    基于 Flink 构建 CEP 引擎的挑战和实践
    实时计算在贝壳的实践
    阿里巴巴大规模应用Flink的踩坑经验:如何大幅降低 HDFS 压力?
    我要上官网,上云案例征集活动启动啦! 提交案例,得大奖!【阿里云】
    【原】git常用命令笔记
    【原】使用vue2+vue-router+vuex写一个cnode的脚手架
    【原】老生常谈-从输入url到页面展示到底发生了什么
  • 原文地址:https://www.cnblogs.com/wangfuyou/p/4998544.html
Copyright © 2020-2023  润新知