如何使用LINQ获取集合中的第二个元素?

时间:2015-08-28 11:08:28

标签: c# linq

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

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

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

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

但这显然不起作用。任何形式的帮助表示赞赏。感谢。

5 个答案:

答案 0 :(得分:7)

你可以使用LINQ的Skip方法跳过第一个并取出之后的一个:

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

Skip所做的是创建一个新的IEnumerable,其中包含除第一个之外的所有项目。然后,你获取新的IEnumerable的第一个()。

答案 1 :(得分:2)

试试这个:

 Make sure that the default admin$ share is enabled on 199.219.21.141 

更新:如果您想获得列表中的第二项,可以在查询结尾处添加var source = _context.SourceLogs.Where(a => a.SourceID == user.ID).OrderBy(a => a.SourceID).Skip(1);

.First()

答案 2 :(得分:1)

你可以跳过第一个并从中获取第一个。

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

答案 3 :(得分:1)

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

答案 4 :(得分:-1)

您可以使用

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

然后方便地查询源列表