C# 组合同一列表中的元素
假设我有一个来自如下数据库的列表:C# 组合同一列表中的元素,c#,linq,list,C#,Linq,List,假设我有一个来自如下数据库的列表: List<Item> list = { new Item { TypeID = 2, Count = 5 }, new Item { TypeID = 2, Count = 7 }, new Item { TypeID = 5, Count = 2 } }; 如何使用LINQ实现这
List<Item> list =
{
new Item
{
TypeID = 2,
Count = 5
},
new Item
{
TypeID = 2,
Count = 7
},
new Item
{
TypeID = 5,
Count = 2
}
};
如何使用LINQ实现这一点?
干杯
Simon您可以使用GroupBy先按TypeID分组,然后对每个组进行求和:
var result = list.GroupBy(x => x.TypeID)
.Select(g => new Item() {
TypeId = g.Key,
Count = g.Sum(x => x.Count)
})
.ToList();
Linq扩展方法联合
var mergedList = list1.Union(list2).ToList();
目前还没有。使用foreach很容易,但我想加入LINQ。对不起,我忘了两个答案都是正确的。但是聪乐战争更快。。。Thx很多,正是我想要的。
var result = list.GroupBy(x => x.TypeID)
.Select(g => new Item() {
TypeId = g.Key,
Count = g.Sum(x => x.Count)
})
.ToList();
var mergedList = list1.Union(list2).ToList();