zoukankan      html  css  js  c++  java
  • LINQ to SQL语句(8)之Concat/Union/Intersect/Except

    Concat/Union/Intersect/Except操作

    适用场景:对两个集合的处理,例 如追加、合并、取相同项、相交项等等。

    Concat(连接)

    说明:连接 不同的集合,不会自动过滤相同项;延迟。

    1.简单形式:

    var q = (

         from c in db.Customers

         select c.Phone

        ).Concat(

         from c in db.Customers

         select c.Fax

        ).Concat(

         from e in db.Employees

         select e.HomePhone

         );

    语句描述:返回所有消费者和雇员的电话和传真。

    2.复 合形式:

    var q = (

         from c in db.Customers

          select new

         {

           Name = c.CompanyName,

           c.Phone

         }

         ).Concat(

         from e in db.Employees

         select new

         {

           Name = e.FirstName + " " + e.LastName,

           Phone = e.HomePhone

          }

        );

    语句描述:返回所有消费者和雇员的姓名和电 话。

    Union(合并)

    说明:连接不同的集合,自动过滤相同项;延迟 。即是将两个集合进行合并操作,过滤相同的项。

    var q = (

         from c in db.Customers

         select c.Country

        ).Union(

         from e in db.Employees

         select e.Country

        );

    语句描述:查询顾客和职员所在 的国家。

    Intersect(相交)

    说明:取相交项;延迟。即是获取不同 集合的相同项(交集)。即先遍历第一个集合,找出所有唯一的元素,然后遍历 第二个集合,并将每个元素与前面找出的元素作对比,返回所有在两个集合内都 出现的元素。

    var q = (

         from c in db.Customers

         select c.Country

        ).Intersect (

         from e in db.Employees

         select e.Country

        );

    语句描述:查询顾客和职员同在的国家 。

    Except(与非)

    说明:排除相交项;延迟。即是从某集合中删除与 另一个集合中相同的项。先遍历第一个集合,找出所有唯一的元素,然后再遍历 第二个集合,返回第二个集合中所有未出现在前面所得元素集合中的元素。

    var q = (

         from c in db.Customers

          select c.Country

        ).Except(

         from e in db.Employees

         select e.Country

        );

    语句描述:查询顾客和职员不同的国家。

  • 相关阅读:
    hive实现根据用户分组,按用户记录求上下两条记录的时间差
    国外互联网公司大数据技术架构研究
    Hadoop源码解析之 rpc通信 client到server通信
    一致性哈希与java实现
    spark 对hbase 操作
    Spark MLlib(下)--机器学习库SparkMLlib实战
    PHP源码进行加密(仅linux)
    有个问题需要将字符串(大数字)计算相加并转换成字符串,传递的参数是字符串。
    Js中Array 函数使用方法
    phpstorm配置xdebug调试
  • 原文地址:https://www.cnblogs.com/syyjay/p/3794563.html
Copyright © 2011-2022 走看看