我如何得到第二个元素的集合,使用LINQ

本文关键字:集合 使用 LINQ 元素 何得 第二个 | 更新日期: 2023-09-27 18:10:17

我有一个愚蠢的问题。我有一个数据库,我需要得到第二个项目不仅是第一个。我打开第一个简单的方法

var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).First()

但我不知道如何打开第二个。我是c#的新手,所以我唯一想的是这个

var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).First(-1)

但这显然不起作用。任何形式的帮助都是感激的。谢谢。

我如何得到第二个元素的集合,使用LINQ

您可以使用LINQ的Skip方法跳过第一个并使用后面的一个:

var source = _context.SourceLogs.Where(...).Skip(1).First();

Skip所做的是创建一个新的IEnumerable,包含除了第一个元素之外的所有元素。然后,取新IEnumerable的First()

var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).ElementAt(1);

试试这个:

var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).OrderBy(a => a.SourceID).Skip(1);

更新:如果您想获得列表中的第二个项目,您可以在查询末尾添加.First():

var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).OrderBy(a => a.SourceID).Skip(1).First();

你可以跳过第一个,从它开始。

var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).Skip(1).First()

可以使用

var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).ToList();

然后在方便的时候查询源列表