过滤ilist中的重复数据
来源:互联网 发布:java冒泡排序代码 编辑:程序博客网 时间:2024/06/05 08:39
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中的重复数据
- 将dt中的重复数据过滤掉
- flex 去除Array中的重复数据 过滤重复值
- 检索出 IList<T> 或 List<T>中的不重复数据 Distinct()
- ibatis 过滤重复数据
- 过滤重复数据
- 过滤数组重复数据
- 添加数据 过滤重复
- 访问IList和IEnumerable中的数据
- C# DataTable 过滤重复数据
- sql 重复列数据过滤
- 利用HashSet过滤重复数据
- C# DataTable 过滤重复数据
- Oracle排序过滤重复数据
- C# DataTable 过滤重复数据
- C# DataTable 过滤重复数据
- C# DataTable 过滤重复数据
- MySQL 查询过滤重复数据
- 黑马程序员——java编程那些事儿____GUI概述
- 利用数据库漏洞扫描评估数据库安全性 1 概述
- javascript 代码执行顺序
- 利用数据库漏洞扫描评估数据库安全性 2 创建扫描任务
- 洗大师权限管理分析
- 过滤ilist中的重复数据
- 利用Fragment创建动态UI 之 创建一个灵活的UI
- 针对上一篇按键中断驱动中一些关键函数分析
- "ORA-00942: 表或视图不存在 "的原因和解决方法
- JS中数组Array的用法
- 任务计划
- 关于ExecuteNonQuery()执行成功却返回-1的问题
- FlashWindowEx实现窗口在任务栏闪烁/变化颜色
- 利用数据库漏洞扫描评估数据库安全性 3 授权扫描