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);
posted @ 2014-10-22 15:34  clark wei  阅读(172)  评论(0)    收藏  举报