程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Linq中Take、TakeWhile、Skip、SkipWhile的比較(轉),takewhileskipwhile

Linq中Take、TakeWhile、Skip、SkipWhile的比較(轉),takewhileskipwhile

編輯:關於.NET

Linq中Take、TakeWhile、Skip、SkipWhile的比較(轉),takewhileskipwhile


參考文章:http://blog.csdn.net/lxfzgg/article/details/20534281

 

Take()             
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var first3Numbers = numbers.Take(3); //從第一個元素開始,獲取三個 return的是前面的數
 
Console.WriteLine("First 3 numbers:");
 
foreach (var n in first3Numbers)
{
      Console.WriteLine(n);//結果 5 4 1
}

 

  TakeWhile()             
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
 
//在這裡需要注意.使用TakeWhile獲取小於6的元素,是從第一個元素開始,
//一直到不滿足其小於6這個條件為止.也就是執行到和9這個元素比較後,就結束比較了
//可以想象一下執行過程.
//5<6=true;4<6=true;1<6=true;3<6=true
//9<6=false; 這裡就停止繼續比較了
var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6);
 
Console.WriteLine("First numbers less than 6:");
 
foreach (var n in firstNumbersLessThan6)
{
    Console.WriteLine(n);//結果為 5 4 1 3
}
 

 

 Skip()             
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var allButFirst4Numbers = numbers.Skip(4); //跳過前四個元素,獲取後面所有的元素
 
Console.WriteLine("All but first 4 numbers:");
 
 foreach (var n in allButFirst4Numbers)
{
     Console.WriteLine(n);//結果9 8 6 7 2 0
}

 

             SkipWhile()  
 int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
  
//跳過不能被3整除的所有元素
//這裡和TakeWhiel又有些不一樣。
//TakeWhile遇到條件不滿足的時候,就會return,
//但是SkipWhile如果執行到能被三整除的數,那麼其後面的元素就不會繼續比較了
 //同樣,想象一下執行過程
//5%3!=0==true; 4%3!=0==true; 1%3!=0==true;
//3%3!=0==false; 運行到這裡的時候,後面的就不再比較.
//所以輸出結果中會有8、7、2、0這幾個不滿足條件的元素
var allButFirst3Numbers = numbers.SkipWhile(n => n % 3 != 0);
foreach (var n in allButFirst3Numbers)
{
   Console.WriteLine(n);//結果3 9 8 6 7 2 0
}

 

           

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved