Linq

Linq查询的基本用法和介绍(m为集合中每个元素的别名)

Linq_第1张图片
image.png

Linq的Lambda表达式(因为委托是一个参数,所以可以直接m=>,而不需要(m)=>,m的类型是委托默认预定好的)

image.png

Linq扩展方法的写法,即传方法

image.png

Linq联合查询即扩展方法

返回的是一个new出来的新元素的集合,元素的字段名随意定义

Linq_第2张图片
image.png

image.png

排序orederby descending

Linq_第3张图片
image.png

image.png

Join on做联合(On后面跟连接条件,Equals判断是否和后面的字段相等)

Linq_第4张图片
image.png

对结果进行分组操作(into groups groups表示一组,不是一个集合),直接into分组得到的信息更全面

Linq_第5张图片
image.png

Linq_第6张图片
image.png

量词操作符any all

any判断是否至少有一个满足
all判断是否都满足


Linq_第7张图片
image.png

去重方法扩展

public static IEnumerable DistinctBy (this IEnumerable source, Func keySelector)
{
    HashSet seenKeys = new HashSet();
    foreach (TSource element in source)
    {
        if (seenKeys.Add(keySelector(element)))
        {
            yield return element;
        }
    }
}

var query = people.DistinctBy(p => new { p.Id, p.Name });
var query = people.DistinctBy(p => p.Id);

方法二

List distinctPeople = allPeople
  .GroupBy(p => new {p.Id, p.Name} )
  .Select(g => g.First())
  .ToList();

你可能感兴趣的:(Linq)