2010-03-16 83 views

回答

38
var nthItem = items.Skip(n).First(); 
+1

_Skip(int count)count:返回剩餘元素之前要跳過的元素數。因此,如果我們跳過n,我們得到第n個索引而不是第n個元素(從1開始),不是嗎?喜歡這個答案:http://stackoverflow.com/a/824652/3958365 – ErTR 2016-08-08 12:35:02

5

您可以使用跳過和採取。

var result = myData.OrderBy(<your order by>).Skip(5).Take(1); 
+1

Take不返回一個項目,它返回一個序列(在這種情況下有一個元素)。 – 2010-03-16 08:36:30

+0

@Mark:確實如此,我認爲我們最好給OP提供兩種選擇。 – cjk 2010-03-16 08:39:14

3
var nthItem = items.Skip(n-1).FirstOrDefault(); 
+0

n-1獲得第n個元素... – Omar 2013-09-18 16:26:35

18

一種替代(.NET 3.5和更高)是使用ElementAtOrDefault。

var nthItem = items.ElementAtOrDefault(n-1); 

該方法的索引是從零開始的,所以如果你想要第三個元素,你爲索引傳遞2。