欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

LINQ基礎(chǔ)之Join和UNION子句

 更新時(shí)間:2022年04月20日 10:52:20   作者:農(nóng)碼一生  
這篇文章介紹了LINQ使用Join和UNION子句的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Join子句

一、簡(jiǎn)介

使用join子句可以將來自不同源序列并且在對(duì)象模型中沒有直接關(guān)系的元素相關(guān)聯(lián),唯一的要求是每個(gè)源中的元素需要共享某個(gè)可以進(jìn)行比較以判斷是否相等的值,join子句使用特殊的equals關(guān)鍵字比較指定的鍵是否相等。

二、案例

內(nèi)部連接

var innerJoinQuery =
              from category in categories
              join prod in products on category.ID equals prod.CategoryID
                      select new { ProductName = prod.Name, Category = category.Name };

分組連接

var innerGroupJoinQuery =
 from category in categories
 join prod in products on category.ID equals prod.CategoryID
 into prodGroup
 select new { CategoryName = category.Name, Products = prodGroup };

左外部連接

var leftOuterJoinQuery =
             from category in categories
             join prod in products on category.ID equals prod.CategoryID
             into prodGroup
                     from item in prodGroup.DefaultIfEmpty(new Product{Name =
             string.Empty, CategoryID = 0})
                     select new { CatName = category.Name, ProdName = item.Name };

分析:

在左外連接中,將返回左側(cè)源序列中的所有元素,即使它們?cè)谟覀?cè)序列中沒有匹配的元素也是如此。
若要在Linq中執(zhí)行左外連接,請(qǐng)將DefaultIfEmpty方法與分組連接結(jié)合起來,以指定要在某個(gè)元素不具有匹配元素時(shí)產(chǎn)生的默認(rèn)右側(cè)元素,可以使用null作為任何引用類型的默認(rèn)值。也可以指定用戶定義的默認(rèn)類型。

UNION子句

一、簡(jiǎn)介

Union返回并集,并集是指位于兩個(gè)集合中任一集合的唯一的元素(自動(dòng)去重復(fù)了)。在LINQ中UNION默認(rèn)是去重的,沒有UNION ALL 語句,不去重用CONCAT()。

二、案例

1.查詢語句寫法

Union會(huì)去除重復(fù)項(xiàng),相當(dāng)于SQL的Union

var q = (from c in db.Customers
         select c.Country
           ).Union(from e in db.Employees
                   select e.Country
           );

相當(dāng)于

var q1 = from s in db.Student
                        where s.ID < 3
                        select s;
var q2 = from s in db.Student
                        where s.ID < 5
                        select s;

 //去掉重復(fù)的
var q = q1.Union(q2);
var r = q.ToList();//ToList之后,會(huì)把數(shù)據(jù)查出來在內(nèi)存中操作

如果不去重,用Concat()

//Concat不會(huì)去除重復(fù)項(xiàng)目,相當(dāng)于SQL的Union All;
//不去掉重復(fù)的 相當(dāng)于union all,
var q3 = q1.Concat(q2);
var r3 = q3.ToList()

2.另一種寫法

var q = db.Customers.Union(db.Employees).select(d=>d.Country);

到此這篇關(guān)于LINQ使用Join和UNION子句的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • WinForm導(dǎo)出文件為Word、Excel、文本文件的方法

    WinForm導(dǎo)出文件為Word、Excel、文本文件的方法

    這篇文章主要介紹了WinForm導(dǎo)出文件為Word、Excel、文本文件的方法,本文直接給出實(shí)現(xiàn)代碼,代碼中包含相應(yīng)注釋,需要的朋友可以參考下
    2015-03-03
  • Unity讀取Excel文件轉(zhuǎn)換XML格式文件

    Unity讀取Excel文件轉(zhuǎn)換XML格式文件

    這篇文章主要為大家詳細(xì)介紹了Unity讀取Excel文件轉(zhuǎn)換XML格式文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C#字符串加密解密方法實(shí)例

    C#字符串加密解密方法實(shí)例

    這篇文章主要介紹了C#字符串加密解密方法,實(shí)例分析了C#對(duì)字符串加密與解密的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C# 監(jiān)控 Windows 文件夾的方法

    C# 監(jiān)控 Windows 文件夾的方法

    這篇文章主要介紹了C# 監(jiān)控 Windows 文件夾的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C#實(shí)現(xiàn)動(dòng)態(tài)數(shù)字時(shí)鐘和日歷

    C#實(shí)現(xiàn)動(dòng)態(tài)數(shù)字時(shí)鐘和日歷

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)動(dòng)態(tài)數(shù)字時(shí)鐘和日歷的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C#修改IIS站點(diǎn)framework版本號(hào)的方法

    C#修改IIS站點(diǎn)framework版本號(hào)的方法

    這篇文章主要介紹了C#修改IIS站點(diǎn)framework版本號(hào)的方法,涉及C#調(diào)用使用ASP.NET IIS注冊(cè)工具Aspnet_regiis.exe進(jìn)行IIS站點(diǎn)framework版本號(hào)修改的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • C#使用EF連接PGSql數(shù)據(jù)庫的完整步驟

    C#使用EF連接PGSql數(shù)據(jù)庫的完整步驟

    這篇文章主要給大家介紹了關(guān)于C#使用EF連接PGSql數(shù)據(jù)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 詳解c# 泛型類的功能

    詳解c# 泛型類的功能

    這篇文章主要介紹了c# 泛型類的功能,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-10-10
  • Unity3D實(shí)現(xiàn)鼠標(biāo)控制旋轉(zhuǎn)轉(zhuǎn)盤

    Unity3D實(shí)現(xiàn)鼠標(biāo)控制旋轉(zhuǎn)轉(zhuǎn)盤

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)鼠標(biāo)控制旋轉(zhuǎn)轉(zhuǎn)盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C# 實(shí)現(xiàn)QQ式截圖功能實(shí)例代碼

    C# 實(shí)現(xiàn)QQ式截圖功能實(shí)例代碼

    本篇文章主要介紹了C# 實(shí)現(xiàn)QQ式截圖功能實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02

最新評(píng)論