我有一个包含4行的列表。 我需要获得第3行的值。
var result = (from rs in list
select rs).Skip(2).First();
我有没有理由想在这个场景中使用Take(1),因为我已经看过了。
var result = (from rs in list
select rs).Skip(2).Take(1);
答案 0 :(得分:18)
Take(1)
会返回包含一个对象的IEnumerable<T>
First()
直接返回对象。
答案 1 :(得分:5)
在问题的上下文中Take(1)
返回的IEnumerable<T>
将包含零个或一个元素 - 因此它类似于FirstOrDefault()
(除了返回一个枚举)。
所以回答你的问题:不。在这种情况下,请使用First()
或FirstOrDefault()
,具体取决于您对结果集中的内容的期望。
答案 2 :(得分:0)
除非您想要跳过前两项
的多个项目//Example:
var result = (from rs in list
select rs).Skip(2).Take(5); //Returns 5 items