Linq

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

image.png

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

image.png

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

image.png

Linq联合查询即扩展方法

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

image.png

image.png

排序orederby descending

image.png

image.png

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

image.png

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

image.png

image.png

量词操作符any all

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


image.png

去重方法扩展

public static IEnumerable<TSource> DistinctBy<TSource, TKey> (this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
    HashSet<TKey> seenKeys = new HashSet<TKey>();
    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<Person> distinctPeople = allPeople
  .GroupBy(p => new {p.Id, p.Name} )
  .Select(g => g.First())
  .ToList();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容