2014-01-07 40 views
0

創建的類合併兩個泛型列表

public class DBClass: IDisposable 
    { 
     public string Name { get; set; } 
     public int Score { get; set; } 
    } 

使用這個類來創建類的列表。

 List<DBClass> dbc1 = new List<DBClass>(); 
     List<DBClass> dbc2 = new List<DBClass>(); 

我已將兩組不同的數據添加到列表中。 注:這僅僅是一個例子

 dbc1.Add(SetDBClass("A", 100)); 
     dbc1.Add(SetDBClass("B", 100)); 
     dbc1.Add(SetDBClass("C", 100)); 

     dbc2.Add(SetDBClass("B", 200)); 
     dbc2.Add(SetDBClass("C", 200)); 
     dbc2.Add(SetDBClass("D", 200)); 

我需要一個List<DBClass>對象與上述兩個對象合併,但在下面的流行時尚。

A - 100 乙 - 300 Ç - 300 d - 200

如何用上述通過LINQ或任何-其他方式實現的呢?

如果你想從兩個列表中排除相同的數據,然後執行以下操作:

ParentDB.Where(b => !((from x in mainDataSource select x.Name).Contains(b.Name))).ToList(); 

回答

11
from x in dbc1.Concat(dbc2) 
group x by x.Name into g 
select new DBClass(g.Key, g.Sum(x => x.Score)) 
+0

這個工作。但是DBClass沒有任何構造函數。我改變了一些部分。像魅力一樣工作謝謝:) – pordi