Если я использую 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!)