获取IOrderedEnumeration的前一个元素

时间:2012-04-17 12:43:54

标签: entity-framework collections

我有一个对象的枚举:

    public IOrderedEnumerable<RentContract> Contracts {
        get { return RentContracts.OrderByDescending(rc => rc.DateCreated); }
    }

我必须将给定的RentContract实例与列表上的前一个RenContract实例进行比较,以突出显示两个对象之间的更改,这是获取前一个元素的最正确方法吗?

1 个答案:

答案 0 :(得分:0)

这是不可能直接的。你可以这样做:

var input = new SomeClass[10]; //test data
var zipped = input.Zip(new SomeClass[1].Concat(input), (a, b) => { a, b });
var result = zipped.Where(x => x.b == null || x.a.DateCreated < x.b.DateCreated.AddHours(-1)); //some example

此解决方案正在使用自身压缩序列,但会被一个null元素偏移。