gpt4 book ai didi

c# - 使用 Linq 按索引求和

转载 作者:太空狗 更新时间:2023-10-29 22:06:36 24 4
gpt4 key购买 nike

我有一个包含 96 个值的集合。我想对 4 个顺序索引的值求和。我如何使用 Linq 执行此操作?

例子

collection = {100, 101, 200, 150, 103, 105, 100, 104,  .........., 20, 40, 60, 80};

(100, 101, 200, 150;) 的总和,然后 (103, 105, 100, 104;) 的总和 ... 然后 的总和>(20, 40, 60, 80;) 这意味着现在我的新集合将有 24 个值。

如何使用 Linq 执行此操作?

最佳答案

我们可以从这个实用函数开始,根据给定的批量大小批量项目:

public static IEnumerable<IEnumerable<T>> Batch<T>(this IEnumerable<T> source, int batchSize)
{
List<T> buffer = new List<T>(batchSize);

foreach (T item in source)
{
buffer.Add(item);

if (buffer.Count >= batchSize)
{
yield return buffer;
buffer = new List<T>(batchSize);
}
}
if (buffer.Count > 0)
{
yield return buffer;
}
}

之后就很简单了:

var query = data.Batch(4)
.Select(batch => batch.Sum());

关于c# - 使用 Linq 按索引求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17050413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com