通过自定义扩展方法DistinctBy实现去重


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;

        }

    }

}

方法的使用

1、针对ID,和Name进行Distinct

var query = allProduct.DistinctBy(p => new { p.Id, p.Name });

2、仅仅针对ID进行distinct:

var query = allProduct.DistinctBy(p => p.Id);

最新文章

  1. ANSYS17.0详细安装图文教程
  2. MyEclipse 快捷键
  3. spring4 mvc 出错
  4. Servlet 编程 简单流程处理(重定向)
  5. 堆的 两种实现 (数组和STL)
  6. C# 系统应用之通过注册表获取USB使用记录(一)
  7. winform C#屏幕右下角弹出消息框并自动消失
  8. 使用 Require.js 引用第三方框架时遇到的一些情况
  9. github--新手使用错误分析
  10. Java IO编程全解(四)——NIO编程
  11. win7安装python3.6.1及scrapy
  12. Codeforces Round #432 Div. 1
  13. C# 中集合类型需要按多个条件排序
  14. 设计模式之模板方法模式:实现可扩展性设计(Java示例)
  15. (转)C# 的三种序列化方法
  16. 补课:Shell命令${}
  17. js短信验证码
  18. java项目打成jar包使用
  19. 实用ExtJS教程100例-001:开天辟地的Hello World
  20. map的put和putIfAbsent使用

热门文章

  1. python常用内建函数
  2. nodeJS(2)深了解: nodeJS 项目架构详解(app.js + Express + Http)
  3. Java EE 学习(8):IDEA + maven + spring 搭建 web(4)- 用户管理
  4. JavaScript 笔记(2) -- 类型转换 &amp; 正则表达 &amp; 变量提升 &amp; 表单验证
  5. 股票交易(bzoj 1855)
  6. Bzoj1974 [Sdoi2010]auction 代码拍卖会
  7. 局部a链接样式
  8. uva 1611:Crane(构造 Grade D)
  9. 广州地区常用的DNS解析服务器
  10. Codeforces Gym101502 E.The Architect Omar-find()函数