Linq-Extensions,代码不会返回偶数值c#

问题描述:

我有一个关于使用lambda表达式的问题。Linq-Extensions,代码不会返回偶数值c#

在教科书中有一个短赋值,其中给出了一系列整数0,2,4,8,7,10,3,2,从第三项开始,只有整数值将被返回,使用Skip()TakeWhile()。我想我说得对,但只有4,8被退回,所以我偷偷摸摸地看了解解决方案,而我的解决方案实际上是一样的。

你们能帮我吗?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace SkipTake 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      int[] sequence= new int[] { 0, 2, 4, 8, 7, 10 , 3, 2 }; 
      var select = sequence.Skip(2).TakeWhile(n => n % 2 ==0); 
      foreach (var item in select) 
       Console.WriteLine(item); 
     } 
    } 
} 

TakeWhile将停在7使用WHERE子句

var select = sequence.Skip(2).Where(n => n % 2 ==0); 
+0

你是对的!一旦Predicate返回“false”,就是这样。我应该更精确地阅读>。

处理该是多么TakeWhile命令的行为项目“7”时,您的查询停止。