c# - 如何获取列表集合的增量

标签 c# collections

我有一个列表。

1 2 3 4 5 6 7

我希望返回连续元素之间的差异(增量)列表。

1 1 1 1 1 1

我该怎么做?

我确信一定有一种简单的“集合”方式可以做到这一点 - 但我找不到它。

最佳答案

您可以使用 Enumerable.SkipEnumerable.Select 的重载哪个项目索引:

List<int> deltaList = list.Skip(1)             // skip first, irrelevant
    .Select((num, index) => num - list[index]) // index 0 is second number in list
    .ToList();

诀窍在于 Skip(1) 不仅会跳过第一个数字(这是需要的),还会更改 Select 中的索引。第一个数字的 index 将为 0,但它会引用列表中的第二个数字(由于 Skip(1))。因此 num - list[index] 用前一个数减去当前数。

关于c# - 如何获取列表集合的增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26587845/

相关文章:

java - 包含对列表

linq - 删除两个 List<string> 集合之间的重叠项目

c# - 全局声明 log4net 变量并在所有类文件中使用它们 c#

c# - MongoDB C# 2.0 驱动程序查询字段 A 小于字段 B

oracle - 在 Oracle 中使用不同类型的 PL/SQL 集合的目的

java - 空指针异常 - 迭代 FastMap 值

c# - 序列化的目的

c# - 查找形状上的角/边(可以定义该形状的最小顶点)

C# 如何将点转换为 vector2?

java - 有什么原因 EnumMap 和 EnumSet 不可导航