使用Linq获得第N个值

Las*_*vik 30 linq

如何使用Linq获取第N行?两列都是文字,所以我不能使用min/max

/ M

Mar*_*ann 42

var nthItem = items.Skip(n).First();
Run Code Online (Sandbox Code Playgroud)

  • _Skip(int count)count:返回剩余元素之前要跳过的元素数.如果我们跳过n,我们得到第n个索引而不是第n个元素(从1开始),不是吗?就像这个答案:http://stackoverflow.com/a/824652/3958365 (3认同)

Pau*_*och 25

另一种选择(.Net 3.5及更高版本)是使用ElementAtOrDefault.

var nthItem = items.ElementAtOrDefault(n-1);
Run Code Online (Sandbox Code Playgroud)

方法的索引从零开始,因此如果您需要第三个元素,则为索引传递2.


cjk*_*cjk 5

你可以使用skip和take.

var result = myData.OrderBy(<your order by>).Skip(5).Take(1);
Run Code Online (Sandbox Code Playgroud)