5

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

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

现在我需要让前一个人使用提供给我的 id。

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

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

使用 LINQ 计算与上一项的差异

4

1 回答 1

16

我想你需要这个

 items.TakeWhile(x => x.id != id).LastOrDefault();
  • Enumerable.TakeWhile只要指定条件为真,方法就从序列中返回元素,然后跳过剩余的元素。
  • 我们取最后一个或default从中取走。
于 2013-06-21T04:44:09.527 回答