Linq查詢的基本用法和介紹(m為集合中每個元素的別名)

image.png
Linq的Lambda表達式(因為委托是一個參數(shù),所以可以直接m=>,而不需要(m)=>,m的類型是委托默認預(yù)定好的)

image.png
Linq擴展方法的寫法,即傳方法

image.png
Linq聯(lián)合查詢即擴展方法
返回的是一個new出來的新元素的集合,元素的字段名隨意定義

image.png

image.png
排序orederby descending

image.png

image.png
Join on做聯(lián)合(On后面跟連接條件,Equals判斷是否和后面的字段相等)

image.png
對結(jié)果進行分組操作(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();