Можно ли сделать эффективную память Group By для суммы в Linq? - PullRequest
0 голосов
/ 31 марта 2011

Если я использую Linq To Objects для длинного массива объектов из CSV-файла, например:

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 голосов
/ 31 марта 2011

ОК - игнорируй меня ....

Вместо этого мне следовало просто побыть с Джоном Скитом. Ответ похож на Группа и количество

Просто задавая вопрос, я нашел ответ ...

...