LINQ Group Join 的簡單應用

來源:互聯網
上載者:User

今天的論壇上看到一網友提出這樣一個問題:

A表資料:ID Content1 內容哈哈哈哈B表資料:ID AID UserID1 1 20122 1 20133 1 2014我要的資料集是:ID Content UserIDs1 內容哈哈哈哈 2012,2013,2014

這樣我想到可以用 LINQ的Group Join來解決:

 

//構造類public class A{  public int ID{get;set;}  public string Content{get;set;}}public class B{  public int ID{get;set;}  public int AID{get;set;}  public int UserID{get;set;}}

 

//初始化資料:var listA=new List<A>(){new A{ ID=1, Content="aaaaaaaaaa"}};var listB=new List<B>(){new B{ ID=1, AID=1, UserID=2012},new B{ ID=2, AID=1, UserID=2013},new B{ ID=3, AID=1, UserID=2014},};

下邊就是執行查詢了:

//Group Join的Lamda運算式寫法:    var QueryWithLamda=listA.GroupJoin(listB,a=>a.ID,b=>b.AID,(a,t)=>new {ID=a.ID,Content=a.Content,UserIDs=string.Join(",",t.Select(x=>x.UserID.ToString()).ToArray())});

 

//Group Join的標準運算式寫法:var QueryWithStandard=from a in listA          join b in listB  on a.ID equals b.AID into t  select new {    ID=a.ID,Content=a.Content,UserIDs=string.Join(",",t.Select(x=>x.UserID.ToString()).ToArray())};

最後:

 

QueryWithLamda 和QueryWithStandard 都是想要的結果.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.