创建了一个类
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 B - 300 C - 300 D - 200
如何通过LINQ或其他任何方式实现上述目标?
如果要从两个列表中排除相同的数据,请按以下步骤操作:
ParentDB.Where(b => !((from x in mainDataSource select x.Name).Contains(b.Name))).ToList();
答案 0 :(得分:11)
from x in dbc1.Concat(dbc2)
group x by x.Name into g
select new DBClass(g.Key, g.Sum(x => x.Score))