c# - 使用 LINQ 将以前的记录获取到当前记录

标签 c# linq

如果我有一个项目列表,并且说“id”是唯一的,但不一定是顺序的,有没有办法在列表或 IEnumerable 中找到前一个实体?

所以我可能有一个人的列表,他们每个人都有一个 ID,并且他们按照我不知道的顺序排序。我得到的只是人员的列表和 ID。

现在我需要让以前的人知道提供给我的 ID。

是否有一个很好的 LINQ 方法来执行此操作,或者我只是找到记录并在 ForEach 中获取前一个记录?

编辑 我刚发现这个,这是最好的方法吗?

Calculate difference from previous item with LINQ

最佳答案

我想你需要这个

 items.TakeWhile(x => x.id != id).LastOrDefault();
  • Enumerable.TakeWhile 只要指定条件为真,该方法就返回序列中的元素,然后跳过其余元素。
  • 我们从中获取最后一个或default

关于c# - 使用 LINQ 将以前的记录获取到当前记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17227794/

相关文章:

linq - 仅支持初始值设定项、实体成员和实体导航属性

c# - 使用 LINQ 构建 Dictionary 轻松访问已安装程序的注册表项

c# - 如何在不删除所有现有记录的情况下使用 LINQ-to-SQL 更新表?

c# - 相同的 (?) C# 和 VB.NET LINQ 查询返回不同的结果

c# - LINQ DBcontext 加载数据花费的时间太长

c# - 来自 Windows Store 应用程序的 Windows Azure 存储 REST API 的授权 header

c# - float/double/decimal 中的精度数字是什么意思?

C# Web浏览器锚定

c# - 可能使用yield作为上下文关键字会引起问题

c# - 从 Azure 表存储获取 1000 多个数据集