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

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

  • 相关阅读:
    JQuery图片预览
    1.数组
    1.什么是C++
    安装PHPCMS 遇到的问题(fsockpen)
    解决采集时提示”没有找到网址列表,请先进行网址采集“的问题
    JAVA 常用的网站
    页面静态化
    我的C笔记系列一
    PHP缓存技术
    PHPCMS 采集规则
  • 原文地址:https://www.cnblogs.com/SuperMetalMax/p/6209975.html
Copyright © 2011-2022 走看看