Linq 是对集合操作的
集中常见的操作
例如 List list = new List();
list.Where(a=>a>10)
list.Single(a=>a>10) 表示有且只能有一个结果, 如果没有或者很多个就会报错
list.SingleOrDefault(a=>a>10) 表示获取一个结果,如果没有的话会显示这个类型的默认值,如果多的话就会报错
list.First(a=>a>10) 表示获取满足条件的第一个结果
list.FirstOrDefault(a=>a>10) 表示获取满足条件的第一个结果 ,如果没有满足条件的结果,返回此类型的默认值
list.Skip(1) 表示跳过一个值 Skip 与 Take 用于分页很好使
list.Take(2) 表示 取得两个值
正序排序OrderBy 倒序排序 OrderByDescending
list.OrderBy(i=>i) 自身排序
list.OrderBy(i=>i.Age) 通过属性进行排序
list.OrderBy(i=>i.Age).ThenBy(i=>i.Salary) 多级排序
list.OrderBy(i=>Guid.NewGuid) 随机排序
聚合函数
Max Min Average Count
int[] ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int max = ints.Max(i => i);
int min = ints.Min(i => i);
double average = ints.Average(i => i);
int count = ints.Count();
Console.WriteLine($"max = {max} , min = {min} , average = {average} , count = {count}");
max = 9 , min = 0 , average = 4.5 , count = 10
分组函数 GroupBy(a=>a.age) 会产生一个分好组的列表 大概就是List<Dictionary<int ,object>>一样的
var enumerable = employees.GroupBy(c=>c.Age);
foreach (var item in enumerable)
{
Console.WriteLine(item.Key);
foreach (var item2 in item)
{
Console.WriteLine(item2);
}
Console.WriteLine("===================");
}
//产生的效果