如何将所有g.ToList()实例聚合到lstResult的Values集合中?
解决Result集合Values属性聚合问题
嘿,我来帮你搞定这个问题!你现在的代码只把每个分组里第一个元素的Value赋值给了Values,但我们需要把分组里所有元素的Value都聚合进这个列表。
修改思路
首先看你的Result类,Values是List<Value>类型,所以不能直接赋值单个Value,得把分组里所有元素的Value收集成一个列表再赋值。另外注意:g本身就是可枚举的分组集合(比如IGrouping类型),没必要反复调用g.ToList(),直接操作它就行。
修改后的完整代码
foreach (var g in data) { lstResult.Add(new Result { Key = g.Key, // 提取分组中每个元素的Value,转成List<Value> Values = g.Select(item => item.Value).ToList() }); } public class Result { public string Key { get; set; } public List<Value> Values { get; set; } }
额外说明
如果你的分组g里的元素本身就是Value类型(而不是包含Value属性的其他对象),那可以简化成:
Values = g.ToList()
这样直接把整个分组转成List<Value>就行,不用额外的Select投影。
内容的提问来源于stack exchange,提问作者user584018
相关产品推荐
相关产品推荐

