如何在linq中获取第二条记录到sql

eba*_*lga 15 linq linq-to-sql

我有一个汇率表.我需要获得当前的费率和以前的费率,然后比较结果.

我可以用第一张唱片FirstOrDefault.

当我使用时ElementAtOrDefault,此错误显示"不支持查询运算符'ElementAtOrDefault'".我如何获得第二张唱片?

Val*_*yev 33

你可以试试这个:

var query=data.Skip(1).Take(1);
Run Code Online (Sandbox Code Playgroud)


Cly*_*yde 7

试试这个简单的实现,这可能会有用

var query= (from p in db.Person where p.Person == person_id select p);
var firstResult = query.First();
var secondResult = query.Skip(1).Take(1).Single();
var thirdResult = query.Skip(2).Take(1).Single();
Run Code Online (Sandbox Code Playgroud)


byt*_*dev 5

如果元素不存在,则Take()返回null(因此等效于FirstOrDefault()).

如果您更喜欢抛出异常(因为第二个元素不在那里),比如First(),那么使用:

Skip(1).Single()
Run Code Online (Sandbox Code Playgroud)


小智 5

这里有一个细节未明确提及:FirstOrDefault返回ElementSkip(1).Take(1)返回一组1个元素;即返回的类型Skip(1).Take(1)IEnumerable,而FirstOrDefault不是。