我有以下代码将数组的每个元素转换为之前所有元素的总和。程序实现如下:
float[] items = {1, 5, 10, 100}; //for example
float[] sums = new float[items.Length];
float total = 0;
for(int i = 0; i < items.Length; i++){
total+=items[i];
sums[i] = total;
}
我将如何将其实现为 LINQ 单线?我知道它可以做到,例如
items.Select((x, i) => items.Take(i + 1).Sum())
但我认为当数组大小增加时效率不是很高,因为它必须对每个元素执行 Sum() 。