`
chungle
  • 浏览: 59989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

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


 

分享到:
评论

相关推荐

    LINQ_to_SQL语法及实例大全

    8. LINQ to SQL语句之Concat/Union/Intersect/Except:这一章节介绍了如何进行数据集的连接、合并、求交集和求差集操作。这些操作类似于集合论中的集合运算,是处理多个数据源间关系的基础。 9. LINQ to SQL语句之...

    LINQ to SQL语句(18)之运算符转换

    在本篇内容中,我们将深入探讨LINQ to SQL语句中的运算符转换,这是理解并有效利用LINQ to SQL的关键知识点。 1. **运算符重载** 在LINQ to SQL中,查询表达式通常涉及各种算术、比较和逻辑运算符。这些运算符在C#...

    linq to sql中文教程

    **LINQ to SQL**是Microsoft .NET Framework中的一个组件,它提供了一种将数据从数据库映射到内存中的对象的方式,允许开发人员使用面向对象的编程语言(如C#或VB.NET)来操作数据库,而无需编写SQL语句。...

    Linq_to_SQL

    LINQ_to_SQL是.NET框架中的一个组件,它支持对象关系映射(ORM),允许开发者以面向对象的方式操作数据库,从而不需要写SQL语句。Linq_to_SQL的主要知识点包括它的核心操作和对应的语法实例,以下是对给定文件中提及...

    Linq基础知识必备

    - **合并查询**:通过`Concat`、`Union`、`Intersect`和`Except`方法,可以合并或比较两个序列。 - **聚合函数**:如`Count`、`Sum`、`Average`、`Min`和`Max`等,用于计算序列的统计信息。 总的来说,LINQ简化了...

    LINQ_TO_SQL语法与实例大全

    **LINQ_TO_SQL**是一种用于Microsoft .NET Framework的技术,它允许开发人员使用面向对象的方式来进行数据库的操作,而无需编写复杂的SQL语句。LINQ_TO_SQL提供了一种简洁的方法来执行常见的数据操作,如查询、插入...

    精通LINQ数据访问,书本事例

    3. **查询操作**:包括选择(Select)、投影(SelectMany)、过滤(Where)、排序(OrderBy/OrderByDescending)、分组(GroupBy)、联合(Union)、并集(Concat)、差集(Except)、交集(Intersect)等。...

    LINQtoSQL语法及实例大全

    ### LINQtoSQL语句(8)之Concat/Union/Intersect/Except 用于集合运算。 - **Concat**:连接两个序列。如`var allProducts = db.Products.Concat(db.SaleItems);` - **Union**:合并两个序列,去除重复项。如`var ...

    c#数据库操作Linq操作数组集合源码.rar

    4. 集合操作:如`Union()`, `Intersect()`, `Except()`, `Concat()`等,用于合并、比较或连接不同的数据集。 5. 分页与排序:`Skip()`和`Take()`用于实现分页,`OrderBy()`和`OrderByDescending()`用于排序。 6. ...

    LINQ Samples.zip

    包括了诸如`Where`(过滤)、`OrderBy`和`OrderByDescending`(排序)、`GroupBy`(分组)、`Concat`(合并)、`Union`(合并并去重)、`Except`(排除)、`Intersect`(交集)等。这些操作符提供了对数据进行筛选...

    C Sharp LinQ

    #### 二、LINQ to SQL语句详解 ##### 1. Where操作 - **简单形式**:`var result = from p in db.Products where p.UnitPrice > 5 select p;` - 这里`db.Products`是一个包含所有产品的集合,`p.UnitPrice > 5`是...

    c#复习摘要

    还有Distinct去除重复元素,Except计算集合差异,Intersect查找交集,Union合并集合,SequenceEqual比较两个序列是否相等,Concat串联序列,Skip和SkipWhile跳过指定数量或满足条件的元素,Take和TakeWhile提取指定...

    Linq操作符27个常用说明.docx

    - **功能描述**:`Join` 操作符类似于 SQL 中的 JOIN 语句,用于连接两个序列,基于共同的键值。 - **应用场景**:当你需要从两个不同的数据源中关联数据时,例如从员工表和部门表中获取信息,可以使用 `Join`。 ##...

Global site tag (gtag.js) - Google Analytics