首页 > 解决方案 > 计算列表中数字之间的差异

问题描述

我有一个整数列表:

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 完成吗?

标签: c#

解决方案


不要认为你可以用链接做到这一点,但你可以这样做:

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;
    }

推荐阅读