程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> LINQ to SQL語句(8)之Concat/Union/Intersect/Except,linqintersect

LINQ to SQL語句(8)之Concat/Union/Intersect/Except,linqintersect

編輯:關於.NET

LINQ to SQL語句(8)之Concat/Union/Intersect/Except,linqintersect


適用場景:對兩個集合的處理,例如追加、合並、取相同項、相交項等等。

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

語句描述:查詢顧客和職員不同的國家。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved