我有一个汇率表.我需要获得当前的费率和以前的费率,然后比较结果.
我可以用第一张唱片FirstOrDefault.
当我使用时ElementAtOrDefault,此错误显示"不支持查询运算符'ElementAtOrDefault'".我如何获得第二张唱片?
试试这个简单的实现,这可能会有用
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)
如果元素不存在,则Take()返回null(因此等效于FirstOrDefault()).
如果您更喜欢抛出异常(因为第二个元素不在那里),比如First(),那么使用:
Skip(1).Single()
Run Code Online (Sandbox Code Playgroud)
小智 5
这里有一个细节未明确提及:FirstOrDefault返回Element,Skip(1).Take(1)返回一组1个元素;即返回的类型Skip(1).Take(1)是IEnumerable,而FirstOrDefault不是。