获取特殊行的linq结果的上一行和下一行

获取特殊行的linq结果的上一行和下一行,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,我有一个配置文件列表每个配置文件都有一个自己的点如何显示一个显示以前的配置文件(行)和下一个配置文件的列表 例如: a 20 b 30 c 40 d 50 e 60 f 70 v 80 t 90 我的目标是d,但我也想在列表中显示前两行和下两行: b 30 c 40 d 50 e 60 f 70 在我的目标中,ProfileId将是参数。我找回了我想要的一切 // here is my code. var pp = from p in db.Profiles.OrderByDesce

我有一个配置文件列表每个配置文件都有一个自己的点如何显示一个显示以前的配置文件(行)和下一个配置文件的列表

例如:

a 20
b 30
c 40 
d 50
e 60 
f 70
v 80 
t 90 
我的目标是d,但我也想在列表中显示前两行和下两行:

b 30
c 40
d 50
e 60
f 70

在我的目标中,ProfileId将是参数。我找回了我想要的一切

// here is my code.
var pp = from p in db.Profiles.OrderByDescending(u => u.score) select p; 

foreach(var x in pp)
{
    t++;
    if (x.ProfileId == 58)
    {
        r = t;
    }
}
var zz = from d in pp.Skip(r - 2).Take(4) select d;

您现在是否有关于如何检索
d
的更多信息?上一个和下一个表示排序-您希望按什么排序?标点符号。美丽的发明。此外,这是什么类型的列表?是否总是有1
d
?看起来可以使用IndexOf-/+2。我解决了这个问题,但使用了额外的对象。