最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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子句可以將來(lái)自不同源序列并且在對(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é)合起來(lái),以指定要在某個(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 語(yǔ)句,不去重用CONCAT()。

二、案例

1.查詢語(yǔ)句寫法

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ù)查出來(lái)在內(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)文章

  • WPF TextBox水印效果制作方法詳解

    WPF TextBox水印效果制作方法詳解

    這篇文章主要為大家詳細(xì)介紹了WPF TextBox水印效果的制作方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • C#使用NPOI導(dǎo)入Excel的方法詳解

    C#使用NPOI導(dǎo)入Excel的方法詳解

    這篇文章主要介紹了C#使用NPOI導(dǎo)入Excel的方法,簡(jiǎn)單介紹了NPOI的功能及操作Excel的導(dǎo)入、讀取等相關(guān)技巧,需要的朋友可以參考下
    2017-04-04
  • Unity3D實(shí)現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路

    Unity3D實(shí)現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C# 爬蟲簡(jiǎn)單教程

    C# 爬蟲簡(jiǎn)單教程

    這篇文章主要介紹了C# 爬蟲的簡(jiǎn)單教程,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • C#實(shí)現(xiàn)IDbConnection/IDbCommand等相關(guān)通用數(shù)據(jù)接口

    C#實(shí)現(xiàn)IDbConnection/IDbCommand等相關(guān)通用數(shù)據(jù)接口

    ADO.NET?中的數(shù)據(jù)提供者對(duì)象提供了IDbConnection、IDbCommand、IDbDataParameter等通用數(shù)據(jù)接口,本文將利用這些對(duì)象實(shí)現(xiàn)一個(gè)通用方法以訪問和操作數(shù)據(jù)庫(kù)內(nèi)容,需要的朋友可以參考下
    2024-04-04
  • C#實(shí)現(xiàn)GZip壓縮和解壓縮入門實(shí)例

    C#實(shí)現(xiàn)GZip壓縮和解壓縮入門實(shí)例

    C#中用GZip對(duì)數(shù)據(jù)壓縮和解壓縮非常方便,但是當(dāng)我第一次拿到這個(gè)類的時(shí)候卻感覺很迷茫,無(wú)從下手
    2014-04-04
  • C#實(shí)現(xiàn)影院售票系統(tǒng)

    C#實(shí)現(xiàn)影院售票系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)影院售票系統(tǒng),解析了售票系統(tǒng)的難點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C#自定義字符串替換Replace方法實(shí)例

    C#自定義字符串替換Replace方法實(shí)例

    這篇文章主要介紹了C#自定義字符串替換Replace方法,以兩個(gè)不同實(shí)例對(duì)比分析了C#自定義字符串替換Replace的方法,是C#關(guān)于字符串操作的典型應(yīng)用,需要的朋友可以參考下
    2014-11-11
  • C#程序窗體間使用回調(diào)事件方式通訊示例

    C#程序窗體間使用回調(diào)事件方式通訊示例

    C#有事件這個(gè)東西,為啥不用呢,而且事件在窗體通信方面,有著更為方便的作用,我們知道事件實(shí)際上就是狀態(tài)的捕獲,數(shù)據(jù)互相操作的例子
    2013-12-12
  • C#遍歷操作系統(tǒng)下所有驅(qū)動(dòng)器的方法

    C#遍歷操作系統(tǒng)下所有驅(qū)動(dòng)器的方法

    這篇文章主要介紹了C#遍歷操作系統(tǒng)下所有驅(qū)動(dòng)器的方法,涉及C#中DriveInfo類GetDrivers方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

寻乌县| 华宁县| 黄骅市| 含山县| 读书| 云林县| 淮阳县| 武清区| 南陵县| 乌兰县| 右玉县| 翼城县| 东台市| 临邑县| 四会市| 阳春市| 蕲春县| 通城县| 建瓯市| 迁安市| 定西市| 武威市| 普定县| 西峡县| 阿拉善右旗| 仁布县| 永寿县| 南充市| 高邮市| 堆龙德庆县| 吉木乃县| 望谟县| 新安县| 灌云县| 石柱| 宜阳县| 岗巴县| 衢州市| 石嘴山市| 东宁县| 韶山市|