c# - 计算列表中数字之间的差异
问题描述
我有一个整数列表:
List<Int32?> numbers = new List<Int32?> { 2, 1, 3, null, 6, 7 }
我需要得到一个包含两个连续值之间差异的列表,因此结果将是:
{ null, -1, 2, null, null, 1 }
null
-1 = 1-2
2 = 3-1
null = null-3
null = 6-null
1 = 7-6
这可以使用 LINQ 完成吗?
解决方案
不要认为你可以用链接做到这一点,但你可以这样做:
List<int?> Method(List<int?> list)
{
int? priv = null;
List<int?> ret = new List<int?>();
foreach (var cornt in list)
{
if (cornt == null || priv == null) ret.Add(null);
else ret.Add(cornt - priv);
priv = cornt;
}
return ret;
}
推荐阅读
- algorithm - 求解位方程
- spring-boot - Spring Batch Reader 正在读取备用记录
- mysql - 计算余额为正的期间和平均总和
- apache-flink - Flink statefun co-located 功能通信
- python - 如何在 Python 中打印金字塔?
- sparql - 在数据集中查找 URI
- facebook-pixel - Facebook 像素不会在 PageView 上发送数据
- momentjs - 无法使用 react-moment Gatsby 解析“./locale”
- php - laravel 6 中的自定义邮件验证模板
- javascript - 在 Jquery 中创建父/子结构时寻求帮助