linq 中这几个方法有时候会搞混(当然是因为不常用的原因),今天记录下,方便以后查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Linq_take_skip_takewhile_skipwhile { /// <summary> /// Linq_中 take_skip_takewhile_skipwhile 区别 /// </summary> class Program { static void Main(string[] args) { int[] arr = { 1,2,3,4,5,6,7,8,9,10}; Console.WriteLine("数据源:"); foreach (var item in arr) { Console.Write(item+"\t"); } Console.WriteLine("\n"); Console.WriteLine("取出前三个"); Take(arr, 3); Console.WriteLine("跳过前三个,取出后面的"); Skip(arr, 3); Console.WriteLine("SkipWhile 取出对2取模不等于0的数"); Console.WriteLine("满足条件则跳过,继续枚举后面的元素,遇到不满足条件的则停止(枚举)跳过,并返回剩余的(包含第一个不满足条件的元素)"); SkipWhile(arr); Console.WriteLine("TakeWhile 取出对2取模不等于0的数"); Console.WriteLine(" 满足条件则返回到结果中,继续枚举后面的元素,直到遇到第一个不满足的元素停止,并返回以满足的结果"); TakeWhile(arr); Console.Read(); } /// <summary> /// 取出指定数量 /// </summary> /// <param name="arr"></param> /// <param name="len"></param> static void Take(int[] arr,int len) { var res = arr.Take(len); foreach (var item in res) { Console.WriteLine(item); } } /// <summary> /// 跳过指定数量 /// </summary> /// <param name="arr"></param> /// <param name="len"></param> static void Skip(int[] arr,int len) { var res = arr.Skip(len); foreach (var item in res) { Console.WriteLine(item); } } /// <summary> /// 满足条件则跳过,继续枚举后面的元素,遇到不满足条件的则停止(枚举)跳过,并返回剩余的(包含第一个不满足条件的元素) /// </summary> /// <param name="arr"></param> static void SkipWhile(int[] arr) { var res = arr.SkipWhile(x => x % 2 != 0); foreach (var item in res) { Console.WriteLine(item); } } /// <summary> /// 满足条件则返回到结果中,继续枚举后面的元素,直到遇到第一个不满足的元素停止,并返回以满足的结果 /// </summary>039402712555 /// <param name="arr"></param> static void TakeWhile(int[] arr) { var res = arr.TakeWhile(x => x % 2 != 0); foreach (var item in res) { Console.WriteLine(item); } } } } |
源文件:[Downlink href=”http://www.phpstu.com/wp-content/uploads/2016/01/Linq_take_skip_takewhile_skipwhile.zip”]Linq_take_skip_takewhile_skipwhile[/Downlink]
未经允许不得转载:开心乐窝-乐在其中 » Linq 中 take_skip_takewhile_skipwhile 区别