过滤ilist中的重复数据
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;/// <summary>
/// 可以根据字段过滤重复的数据
/// </summary>
/// <typeparam name="T"></typeparam>
public class Comparint<T> : IEqualityComparer<T> where T : class, new()
{private string[] comparintFiledName = { };public Comparint() { }public Comparint(params string[] comparintFiledName){this.comparintFiledName = comparintFiledName;}bool IEqualityComparer<T>.Equals(T x, T y){if (x == null && y == null){return false;}if (comparintFiledName.Length == 0){return x.Equals(y);}bool result = true;var typeX = x.GetType();//获取类型var typeY = y.GetType();foreach (var filedName in comparintFiledName){var xPropertyInfo = (from p in typeX.GetProperties() where p.Name.Equals(filedName) select p).FirstOrDefault();var yPropertyInfo = (from p in typeY.GetProperties() where p.Name.Equals(filedName) select p).FirstOrDefault();result = result&& xPropertyInfo != null && yPropertyInfo != null&& xPropertyInfo.GetValue(x, null).ToString().Equals(yPropertyInfo.GetValue(y, null));}return result;}int IEqualityComparer<T>.GetHashCode(T obj){return obj.ToString().GetHashCode();}
}
然后可以调用上面的类
例如:IList<BaseTag> listnew = list.Distinct(new Comparint<BaseTag>("BaseName")).ToList();
过滤list中 字段BaseName 相同的
过滤ilist中的重复数据相关推荐
- 裕-C#过滤DataTable中的空数据和重复数据
C#过滤DataTable中的空数据和重复数据 string sql = "select name,age from user"; DataTable data = DB.Exec ...
- 使用pycharm去掉表格中的重复数据
使用pycharm去掉表格中的重复数据 接下来几篇文章为复盘前段时间数据分析的随笔 如何用pycharm去掉表格中重复数据呢? 1.安装pycharm 详细安装及配置Python环境过程: https ...
- pandas删除数据行中的重复数据行、基于dataframe所有列删除重复行、基于特定数据列或者列的作何删除重复行、删除重复行并保留重复行中的最后一行、pandas删除所有重复行(不进行数据保留)
pandas删除数据行中的重复数据行.基于dataframe所有列删除重复行.基于特定数据列或者列的作何删除重复行.删除重复行并保留重复行中的最后一行.pandas删除所有重复行(不进行数据保留) 目 ...
- java去重复的集合_如何去除Java中List集合中的重复数据
1.循环list中的所有元素然后删除重复 public class duplicatRemoval { public static List removeDuplicate(List list){ f ...
- MSSQL如何在没有主键的表中删除重复数据
MSSQL如何在没有主键的表中删除重复数据 原文:MSSQL如何在没有主键的表中删除重复数据 为了对重复数据进行实验,下面建一个设计不太好(没有主键)表并插入了一些重复数据: create datab ...
- Java 中ArrayList中的重复数据
以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是在一个ArrayList删除 ...
- 如何删除sql server中的重复数据
如何删除sql server中的重复数据 先来看下有多少重复数据,伪代码如下: select count(重复字段)-count(distinct 重复字段) from 表名 执行这个SQL伪代码候就 ...
- 怎么有效地查询MySQL表中的重复数据
在MySQL数据库中,偶尔会遇到需要查找表中出现的重复数据的情况.这种情况下,我们可以通过编写一些SQL查询语句轻松地找到并处理这些重复行.本文将介绍一些常见的方法和技巧,帮助你有效地查询MySQL表 ...
- 【WPS表格】标记出表中的重复数据,并新建工作表
利用[数据对比]功能,标记出单元表中的重复数据并新建工作表: 注意:这是WPS的会员功能
最新文章
- (iOS)Storyboard/xib小技巧
- ProgressBar 各种样式
- python处理json数据_python处理json格式的数据
- Web前端笔记-element ui中table中某列添加a便签进行跳转
- 什么是Java中的原子操作( atomic operations)
- 精品 德国 软件推荐 著名的光盘烧录软件 Nero
- MicroBlaze AXI总线 GPIO中断使用(On Atyls Board)
- 【观点】Ruby优于Python之处(面向hackers)
- 一个简单的用于预测的BP神经网络模型
- IP地址的两种表示方法:整数和点分十进制
- i78565U和i710510U的区别 i78565U和i710510U参数配置对比哪个好
- AFFF3%水成膜泡沫灭火剂生产厂家分析品牌哪家好数据说明
- 2021年安全生产模拟考试(建筑起重机司机-物料提升机模拟考试题库)安考星
- 计算多列迭代次数的一种平均列近似方法
- Homework 1 : Knowledge items of C++ Answer (part 1)
- 简单快速!分享给你一款在线jpg格式转换器
- 使用VMware测试U盘启动盘是否制作成功
- CentOS联网问题(已解决)
- XShell传输文件(CentOS7)
- basler工业相机使用问题总结