2012-11-20 318 views
1
串接值

我的表中的數據是這樣的:合併兩個表,並使用LINQ

table 1: 
Id CId Message 
1  1 E:MMM 
1  1 E:NNN 
1  1 E:OOO 
1  2 E:PPP 
1  2 E:PPP 

table 2: 
Id CId Message 
1  1 W:NNN 
1  1 W:OOO 

合併使用LINQ我的輸出表兩張表應該是經過這樣的: 結果表:

Id CId ErMessage    WrMessage 
1  1  E:MMM*E:NNN*E:OOO  W:NNN*W.OOO 
1  2  E:PPP*E:PPP 

請幫助我如何實現。

+0

這問了好幾次。 [Here](http://weblogs.asp.net/bradvincent/archive/2008/11/01/linq-cheat-sheet.aspx)是您正在尋找的解決方案。下載它。隨時與您保持備忘單。 (你應該看看加入示例) – nzic

+0

我沒有使用連接。你能幫我解決這個問題嗎? – Mani

+0

好的,首先告訴我你的表格中的不同值有多少個相同的ID。即表1:ID-1; E:MMM 表1:ID-1; E:NNN 我們可以假設這些是不同的ID嗎? – nzic

回答

3
var q = 
    from t1 in 
     table1.GroupBy(g => g.ID).Select(g => new 
     { 
      ID = g.Key, 
      Message = string.Join("*", g.Select(v => v.Message).ToArray()) 
     }) 
    join 
     t2 in 
     table2.GroupBy(g => g.ID).Select(g => new 
     { 
      ID = g.Key, 
      Message = string.Join("*", g.Select(v => v.Message).ToArray()) 
     }) on t1.ID equals t2.ID 
    select new 
    { 
     ID = t1.ID, 
     ErMessage = t1.Message, 
     WrMessage = t2.Message 
    }; 
+0

謝謝Michael ... – Mani

+0

您隨時歡迎 –

+0

邁克爾請再次看看我的問題。我編輯過它。 – Mani