zoukankan      html  css  js  c++  java
  • linq 根据指定条件返回集合中不重复的元素

    原理:先查询出数据,根据指定值分组,然后取第一条映射

    1.第一种方法

    1  string sql = string.Format("select*from PoliceLogistcs);
    2  db.Database.SqlQuery<PoliceLogistcs>(sql).GroupBy(p => p.DepartmentNumber).Select(p => p.First());
    //多个条件时候
    3 db.Database.SqlQuery<PoliceLogistcs>(sql).GroupBy(p => new { p.Id, p.DepartmentNumber }).Select(p => p.First());

    2.封装成公共方法

     1         /// <summary>
     2         ///     根据指定条件返回集合中不重复的元素
     3         /// </summary>
     4         /// <typeparam name="T">动态类型</typeparam>
     5         /// <typeparam name="TKey">动态筛选条件类型</typeparam>
     6         /// <param name="source">要操作的源</param>
     7         /// <param name="keySelector">重复数据筛选条件</param>
     8         /// <returns>不重复元素的集合</returns>
     9         public static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> source, Func<T, TKey> keySelector)
    10         {
    11             return source.GroupBy(keySelector).Select(group => group.First());
    12         }
  • 相关阅读:
    论语学习系列(一)
    如何编译生成 dll
    Lua学习系列(二)
    Lua学习系列(一)
    Promise对象
    ... 扩展运算符
    class类
    proxy [ˈprɒksi] 代理
    HBuilder 打包流程
    Generator [ˈdʒenəreɪtə(r)] 函数结构
  • 原文地址:https://www.cnblogs.com/louby/p/6554044.html
Copyright © 2011-2022 走看看