使用LINQ获取当前记录

时间:2013-06-21 04:41:56

标签: c# linq

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

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

现在我需要让前一个人知道提供给我的身份。

有没有一个很好的LINQ方法来做这个或者我只是找到记录并在ForEach中获取前一个?

修改 我刚发现这个,这是最好的方法吗?

Calculate difference from previous item with LINQ

1 个答案:

答案 0 :(得分:13)

我认为你需要这个

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