zoukankan      html  css  js  c++  java
  • LINQ to SQL语句(8)之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
            );

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

  • 相关阅读:
    oracle数据库版本进化的关键节点
    到底什么是数据库呢?
    迁移数据之后,读取数据库变得很慢
    为什么越来越多的人使用python呢?
    20135306 2.4 ELF文件格式分析
    20135306 2.3程序破解实践
    20135306黄韧模块实践报告
    Linux内核学习总结
    Linux内核分析期中知识点总结
    LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程
  • 原文地址:https://www.cnblogs.com/SuperMetalMax/p/6209975.html
Copyright © 2011-2022 走看看