LINQ知识点

linq中select()实现了一种投影操做,能够进行对象类型转换
Takewhile()和skipwhile有点相似,只不过当where()遇到不符合条件的元素是,会继续查找序列中知足条件的下一个元素,直到序列结束,而takewhile在遇到不符合条件的元素时会直接返回前面的查找到的符合条件的元素
skipwhile是takewhile的反操做,会一直跳过符合条件的元素,知道遇到第一个不符合条件的元素,而后返回钙元素以后的全部元素构成的序列
Intersect返回两个序列中相同元素组成的序列
Except返回第一个序列中有二第二个序列中没有的元素
concat运算符用于链接两个序列
union运算符也用于连接两个序列,但那时会提出相同的项目
zip()对两个序列中位置相同的两个元素进行操做,给予两个元素的操做结果返回一个新的元素,若是两个序列的长度不想等, 则以长度短的为准
-----------------------------------------------------------------------
Toarray(),Tolist(),ToDictionary(),ToLookUp()四个方法用于将IEnumerable<T>转换为响应的类型,再转换是,会执行遍历
ElementAt()以序列中元素的位置做为参数,返回钙元素,若是元素不存在,就抛出异常
ElemnetAtOrDefault()在元素不存在时赶回该类型的默认值,对于引用类型来讲,其默认值为null
SIngle()与First()相似,只不过Single要求序列中有且只有一个知足条件的项,若是知足条件的有两项,则会抛出异常,SingleOrDefault要求有一个或零个男足条件的项,当知足条件项为0时,返回默认值
Aggregate()运算符用于返回自定义的聚合()
Contains()判断某一个元素是否存在于序列中
Any()判断序列中是否存在知足表达式的元素,只要有一个元素知足,则返回true,当调用无参数的重载方法时,Any用于判断序列中是否包含元素
All()判断序列中全部的元素是否都知足表达式,只要有一个元素不能知足,则返回false
SequenceEqual()用于逐项比较两个序列,当两个序列中的元素数目相同,而且序列中相同位置的元素也相同时,返回True不然返回False数组

 1  Pretion<int> sd = x => x == 4;
 2             Pretion<string> str = s => { return s == "8"; };
 3             //若是没有使用花括号,默认的会把方法返回值返回,若是使用了{}就会把须要“return”的返回出去
 4 
 5             IList<Pro123> product = new List<Pro123>() {
 6                 new Pro123 { Name = "生活与科学", Price = 3.23 },
 7                 new Pro123 { Name = "大天然", Price = 5.23 },
 8                 new Pro123 { Name = "梦想与彩虹", Price = 8.23},
 9                 new Pro123 { Name = "大人鱼", Price = 6.23 }
10             };
11             var query = from a in product
12                         where a.Price >= 4 && a.Price < 7
13                         orderby a.Price descending
14                         select new { name = a.Name, price = a.Price }//select()实现的是投影操做
15                         ;
16             foreach (var item in query)
17             {
18                 System.Console.WriteLine(item.name);
19                 System.Console.WriteLine(item.price);
20             }
21             int[] arrayint = { 1 };
22             int sum = arrayint.Aggregate(0, (x, y) => x + y * 3);//0表明x,意思是0+循环的每一个数组项*3
23             System.Console.WriteLine(sum);
相关文章
相关标签/搜索