开发工具与关键技术:C#
作者:张俊辉
撰写时间:2019年06月8日
Take 获取,获取几条数据,例如:使用Take仅获取数组的前3个元素。
首先声明一个数组如下:int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
然后使用Take仅获取该数组的前3个元素:var number = numbers.Take(3);
遍历输出结果如下:
Skip 跳过,跳过多少条数据,使用上方的数组,例如: 使用Skip来获取数组的前4个元素之外的所有元素: var number = numbers.Skip(4);
遍历输出结果如下:
可以结合使用达到提取某一段元素的效果,同样使用上方数组,例如:从数组的第四个元素开始提取五个元素: var number = numbers.Skip(3).Take(5);
遍历输出结果如下:
TakeWhile 获取满足条件前的元素,同样使用上方数组,例如: 使用TakeWhile返回从数组开头开始的元素,直到命中的数字不小于6:var number = numbers.TakeWhile(n => n < 6);
遍历输出结果如下:
再例如:使用TakeWhile返回从数组开头开始的元素,直到命中的数字小于其在数组中的位置:
var number = numbers.TakeWhile((n, index) => n >= index);
遍历输出结果如下:
SkipWhile 从满足条件的元素开始获取后边的元素 ,同样使用上方数组,例如: 使用SkipWhile从第一个可被3整除的元素开始获取数组的元素:
var number = numbers.SkipWhile(n => n % 3 != 0);
遍历输出如下:
再例如:使用SkipWhile从第一个小于其位置的元素开始获取数组的元素:
var number = numbers.SkipWhile((n, index) => n >= index);
遍历输出结果如下:
结合上方的运算符可以满足不同条件的分区:例如: 从第一个可被3整除的元素开始获取3个元素:
var number = numbers.SkipWhile(n => n % 3 != 0).Take(3);
遍历输出结果如下:
或者: 从数组的第3个元素开始提取直到命中的数字不小于6:
var number = numbers.Skip(2).TakeWhile(n => n < 6);
遍历输出结果如下:
再或者:从第一个可被2整除的元素开始获取,直到命中的数字不小于6:
var number = numbers.SkipWhile(n => n % 2 != 0).TakeWhile(n => n < 6 );
遍历输出结果如下:
还可以:第一个小于其位置的元素开始获取直到命中的数字小于其在数组中的位置
var number = numbers.SkipWhile((n, index) => n >= index).TakeWhile((n, index) => n >= index);
遍历结果如下: