我有一个整数列表:
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 来完成吗?
答案 0 :(得分:1)
不要认为你可以用链接来做,但你可以这样做:
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;
}
答案 1 :(得分:1)
你能用 LINQ 做这件事吗?是:
var diffs = numbers.Select((_, i) => i == 0 ? null : numbers[i] - numbers[i - 1]);
你应该用 LINQ 做这件事吗?可能不会。