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         }
  • 相关阅读:
    hlgoj 1766 Cubing
    Reverse Linked List
    String to Integer
    Bitwise AND of Numbers Range
    Best Time to Buy and Sell Stock III
    First Missing Positive
    Permutation Sequence
    Next Permutation
    Gray Code
    Number of Islands
  • 原文地址:https://www.cnblogs.com/louby/p/6554044.html
Copyright © 2011-2022 走看看