如果我有一个项目列表,并说“id”是唯一的,但不一定是顺序的,有没有办法找到前面的实体说List或IEnumerable?
所以我可能有一个人员列表,他们每个人都有一个id,他们按照我不知道的顺序排序。我得到的只是列表和人的身份。
现在我需要让前一个人知道提供给我的身份。
有没有一个很好的LINQ方法来做这个或者我只是找到记录并在ForEach中获取前一个?
修改 我刚发现这个,这是最好的方法吗?
答案 0 :(得分:13)
我认为你需要这个
items.TakeWhile(x => x.id != id).LastOrDefault();
Enumerable.TakeWhile
只要指定的条件为真,方法就会返回序列中的元素,然后跳过剩余的元素。default
。