1、分区运算符
分区运算符主要有四个Take、TakeWhile、Skip、SkipWhile
分区运算符可以帮我们只取得需要的数据,对分页支持很好。
(1)Take
获取数组前三个元素
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var first3Numbers = numbers.Take(3);(2)TakeWihle
获取数组中数字不小于索引的元素,直到遇到数字小于索引的结束
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);结果:5 4
(3)Skip
获取数组从除去前3个元素以外的集合
int[] numbers = { 5, 4, 1, 3, 9}; var allButFirst4Numbers = numbers.Skip(3);结果:3 9
(4)SkipWhile
获取数组中从第一个能被 3 整除的元素开始的所有元素
int[] numbers = { 5, 4, 1, 3, 9, 8};
// 在 lambda 表达式中,“n”是输入参数,连续标识 // 集合中的每个元素。它被推断为 // int 类型,因为数字是一个 int 数组。 var allButFirst3Numbers = numbers.SkipWhile(n => n % 3 != 0);2.排序运算符
排序运算符主要有OrderBy 、ThenBy、Reverse
(1)OrderBy
string[] words = { "cherry", "apple", "blueberry" }; var sortedWords = from word in words orderby word.Length select word;(2)ThenBy
var sorted=
from digit in words orderby digit.Length, digit descending select digit;(3)Reverse
var reversed = (
from digit in words where digit[1] == 'i' select digit) .Reverse();(4)自定义比较器
var selfWords =
words.OrderBy(a => a.Length) .ThenByDescending(a => a, new CaseInsensitiveComparer());public class CaseInsensitiveComparer : IComparer<string>
{ public int Compare(string x, string y) { return string.Compare(x, y, StringComparison.OrdinalIgnoreCase); }}