.NET Core EF Core(Entity Framework Core)去掉重复数据(distinct)
1、去重获取单列数据的列表
1) 使用Distinct()
方法
db.PageInfos.Select(p => p.Type).Distinct().ToList();
2)使用GroupBy()
方法
db.PageInfos.GroupBy(p => p.Type).Select(p=>p.Key).ToList();
2、去重获取Model数据的列表
使用DistinctBy()
扩展方法来实现,可以返回Model列表数据。
public static class DistinctByClass
{
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;
}
}
}
}