一些Linq方法,come on !!

bool b1 = users.All(u => u.ID == 21); 判断是否元素都满足条件,如果有一个不满足,则返回False,都满足则返回True
Any() bool b2 = users.Any(u => u.Age == 100); 判断是否有满足条件的,如果有就返回true,否则,返回false
double avgAge = users.Average(u => u.Age); 求某个属性的平均值,不可是字符串。返回的是一个double
bool b3 = users.Contains(u1); 注意:只有users中添加过u1,才真的是存在,就算users里有和u1一样的元素,也不包含
Count() int count = users.Count(u => u.Age > 30); 如果没有参数,那么值直接返回集合的行数,如果有表达式,就返回满足条件的个数
List<User> users2=users.Concat(users).ToList(); 将list和list2 进行拼接 再返回一个新的集合
List<User> users3 = users2.Distinct().ToList(); 去除重复的元素,返回新的集合
User u4 = users.ElementAt(0) // 效果 等同于 users[0] 但如果超出范围,会报错
User u5 = users.ElementAtOrDefault(1000); 和上面的方法类似,但是超出之后,不会报错,只会返回该类型的默认值
User u6 = users.Find(u => u.Age >= 1000); 获得第一个满足条件的元素,如果找不到,则返回该类型的默认值
List<User> users4 =users.FindAll(u => u.Gender == "女"); 获取所有满足条件的元素,将这些元素返回到一个新的集合 相反的是FindLastAll()
int index2 = users.FindIndex(3,5, u => u.Age == 22); 指定了开始的位置和结束的位置,相反的是FindLastIndex()
List<User> user5= users.GetRange(3, 4).ToList(); 从指定的位置开始,获得指定个数的元素,形成新集合
users.Max(u => u.Age); users.Min(u => u.Age); 最小与最大的
var users6= users.GroupBy(u => u.Gender).ToList(); 分组,键值对集合,
List<User> users7 = users.OrderBy(u => u.ID).ToList(); 根据某列进行排序,并返回新的集合 倒序是:users.OrderByDescending(u => u.ID).ToList();
users.RemoveAll(u => u.Age < 30); 删除所有满足条件的元素
users.RemoveRange(2, 4); 从指定位置开始,删除指定个数的元素
users.Reverse(); 对集合进行反转,如果指定哪里到哪里进行反转的话users.Reverse(0, 3);
int sum = users.Sum(u => u.Age); 对某列进行求和
users.Select(u=> new Hehe() { xxx=u.ID, aaa = u.Age }).ToList() 将现有集合中的元素 映射为 新类型 你也可以直接在后面的tolist上添加过滤linq语句
List<User> users9 = users.OrderBy(u => u.ID).Skip(4).Take(3).ToList(); skip()跳过多个元素,Take()是选择多少个
List<User> users10= users.Where(u=>u.Gender=="男1").ToList(); 获取所有满足条件的元素,并形成新的集合

猜你喜欢

转载自www.cnblogs.com/ZaraNet/p/9771678.html