去除重复类型对象BookInfo示例:

bookList = bookList.Distinct(new DataRowComparer()).ToList(); //去除重复书籍

/// <summary>
/// 自定义书籍比较(去重)
/// </summary>
public class DataRowComparer : IEqualityComparer<BookInfo>
{
public bool Equals(BookInfo b1, BookInfo b2)
{
return (b1.BookId == b2.BookId); //去重
}
public int GetHashCode(BookInfo b)
{
return b.ToString().GetHashCode();
}
}

推荐使用这种:

 return list.Distinct(o => o.Id).ToList();//去重
    public static class EnumerableExtender
{
public static IEnumerable<TSource> Distinct<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
HashSet<TKey> seenKeys = new HashSet<TKey>();
foreach (TSource element in source)
{
var elementValue = keySelector(element);
if (seenKeys.Add(elementValue))
{
yield return element;
}
}
}
}

去除单一类型元素:

List<string> list = new List<string>();
list.Add("a");
list.Add("a");
list.Add("b");
list.Add("c");
list.Add("b");
list = list.Distinct().ToList();

扩展阅读:

Linq使用Distinct删除重复数据时如何指定所要依据的成员属性

最新文章

  1. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 2
  2. Linux下串口与工业协议的开发
  3. 获取屏幕分辨率(C#)
  4. Google 面经 09/26
  5. ASP.NET 中OAUTH 2.0 及OPENID CONNECT的介绍
  6. 3.5MM/2.5MM耳机插头定义
  7. lc面试准备:Remove Duplicates from Sorted List
  8. css--多重样式
  9. JavaScript一些常用方法一
  10. springboot定时任务——整合Quartz
  11. ASP.NET Core中使用GraphQL - 第七章 Mutation
  12. window模拟linux环境-cygwin安装
  13. realm swift调研--草稿
  14. 【git】仓库目录下文件不加入版本控制
  15. ES6面试题总结
  16. linux初学terminal命令(1)ls、cd、su、man、pwd、useradd、passwd、cat、Ctrl+C、Ctrl+Z、Ctrl+L
  17. 华为S5300系列升级固件S5300SI-V200R001C00SPC300.cc
  18. Qt容器类汇总说明
  19. jquery 添加与删除的规律 当要添加时候要定位到自己的父元素 当要删除时候 通过事件函数传入的this找到自己的父元素进行删除
  20. 帧动画和骨骼json、极速、二进制对比

热门文章

  1. zookeeper 监控 —— 阿里taokeeper
  2. Dubbo 应用容器
  3. 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类
  4. Matlab学习:读取指定文件夹及其五级子文件夹内的文件
  5. Mingyang.net:No identifier specified for entity
  6. C Primer Plus(第五版)8
  7. 如何实现Oracle修改用户权限 .
  8. hdu 1255 覆盖的面积(线段树 面积 交) (待整理)
  9. JAVA的JDBC连接与sql操作
  10. 蓄水池采样算法(Reservoir Sampling)