我想用 linq (对象列表)进行查询,但我真的不知道该怎么做,我可以进行组和求和,但无法选择其余字段。
例子:
ID Value Name Category
1 5 Name1 Category1
1 7 Name1 Category1
2 1 Name2 Category2
3 6 Name3 Category3
3 2 Name3 Category3
我想按 ID 分组,按值求和并返回所有这样的字段。
ID Value Name Category
1 12 Name1 Category1
2 1 Name2 Category2
3 8 Name3 Category3
更新 :
如果您试图避免对所有字段进行分组,您可以仅按Id
:
data.GroupBy(d => d.Id)
.Select(
g => new
{
Key = g.Key,
Value = g.Sum(s => s.Value),
Name = g.First().Name,
Category = g.First().Category
});
但这段代码假设对于每个Id
, 相同Name
and Category
申请。如果是这样,您应该考虑按照@Aron 的建议进行标准化。这意味着保留Id
and Value
在一节课中并移动Name
, Category
(以及对于相同的其他字段是相同的Id
)到另一个班级,同时也有Id
以供参考。规范化过程减少了数据冗余和依赖性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)