Linq 整理(三)
* 转换操作符:AsEnumerable,Cast,OfType,ToArray,ToDictionary,ToList,ToLookup
* 元素操作符:First,FirstOrDefault,Last,LastOrDefault,ElementAt,ElementAtOrDefault,Single,SingleOrDefault
* 相等运算符:SequenceEqual
* 限定操作符:All,Any,Contains
1)All:用来确定是否序列中的所有元素都满足条件
2)Any:确定序列中是否有元素满足条件
Any<TSource>(IEnumerable<TSource>) 确定序列是否包含任何元素
Any<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 确定序列中是否存在元素满足条件
3)Contains:确定序列是否包含指定的元素
* 数据分区操作符:Take,TakeWhile,Skip,SkipWhile
1)SkipWhile:只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素
int[] grades = { 59, 82, 70, 56, 92, 98, 85 };
IEnumerable<int> lowerGrades = grades.OrderByDescending(grade => grade).SkipWhile(grade => grade >= 80);
int[] amounts = { 5000, 2500, 9000, 8000, 6500, 4000, 1500, 5500 };
IEnumerable<int> query = amounts.SkipWhile((amount, index) => amount > index * 1000);
2)TakeWhile:只要满足指定的条件,就会返回序列的元素。
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };
IEnumerable<string> query = fruits.TakeWhile(fruit => String.Compare("orange", fruit, true) != 0);
string[] fruits = { "apple", "passionfruit", "banana", "mango", "orange", "blueberry", "grape", "strawberry" };
IEnumerable<string> query = fruits.TakeWhile((fruit, index) => fruit.Length >= index);

浙公网安备 33010602011771号