是否可以在Linq中为一个Sum做一个内存有效的Group By?

时间:2011-03-31 00:09:25

标签: linq-to-objects

如果我在CSV文件中的一长串对象上使用Linq To Objects,如:

Name, NumApples
"Fred", 1
"Fred", 2
"Jane", 2
"Pete", 1
"Fred", 1
"Bob", 3
"Jane", 2

我想计算

var query = from p in myfile
            group p.NumApples by p.Name into grouped
            select new 
            {
                Name = grouped.Key,
                TotalApples = grouped.Sum()
            };

然后我的理解是按操作分组将创建Dictionary<string, List<int>>并且只有在读取整个文件后才会计算Sum()值。

Linq有什么方法可以避免在Dictionary<string, List<int>>中使用大量内存吗?


(我意识到我可以通过不使用Linq来做到这一点,但我喜欢使用Linq!)

1 个答案:

答案 0 :(得分:0)

好的 - 不理我......

我应该选择Jon Skeet。答案类似于Group and Count

只是提出问题,我找到了答案......

相关问题