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
            );

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

  • 相关阅读:
    手机蓝牙各类服务对应的UUID
    Android数据传递的四种方法
    PS延迟显示的解决方法
    字符串分离函数
    利用cmd命令创建wifi热点
    我的毕业设计——无线控制平台
    只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手
    volatile 关键字
    PC蓝牙开发笔记
    Jquery与CSS中的大于符号
  • 原文地址:https://www.cnblogs.com/SuperMetalMax/p/6209975.html
Copyright © 2011-2022 走看看