查找集合中的下一条记录:LINQ我有一个对象列表,每个对象都有一个id属性比如1,10,25,30,4我有一个currentId,我需要在列表中找到下一个Id例如,当前Id设置为25,我需要返回id为30的对象。之后的对象将为4。我如何在LINQ中优雅地执行此操作?编辑列表按“排序”属性排序。所以你不能只按ID排序,因为那样会弄乱顺序。没有重新排序(注意我稍微编辑了因为我想我误解了这个问题):int[]data={1,10,25,30,4};最后一个=25;varnext=data.SkipWhile(i=>i!=last).Skip(1).First();显然,如果数据是一个对象数组,类似于:varnext=data.SkipWhile(obj=>obj.Id!=last).Skip(1).First();intcurrentId=25;varnext=yourCollection.Where(i=>i.Id>currentId).OrderBy(i=>i.Id).First();有很多解决方案。我建议如下。varnext=items.Where(item=>item.Id>currentId).OrderBy(item=>item.Id).First();varnext=items.OrderBy(item=>item.Id).First(item=>item.Id>currentId);如果您希望ID按照它们在集合中出现的顺序排列,您可以使用以下方法。varnext=items.SkipWhile(item=>item.Id!=currentId).Skip(1).FirstOrDefault();如果它返回null,则表示您已尝试获取上一项的下一项。以上就是C#学习教程:收藏中找下一条记录:LINQ分享的全部内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——本文来自网络收集,不代表立场,如有侵权,请点击右边联系管理员删除。如需转载请注明出处:
