2011-03-31 28 views
0

如果我使用LINQ to對象從CSV對象的多頭排列上的文件,如:是否有可能在Linq中創建一個高效的Group By for Sum?

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!)

回答

0

OK - 不理我....

我剛纔bing'ed喬恩取而代之的是Skeet。回答類似於Group and Count

只是提出問題,我找到了答案...