Linq实现DataTable动态去重复
2015-07-28 09:34
417 查看
本文介绍一种按字段动态对DataTable去除重复数据的方法
/// <summary> /// 按照fieldName从sourceTable中选择出不重复的行, /// 并且返回sourceTable中所有的列。 /// </summary> /// <param name="sourceTable">源表</param> /// <param name="fieldName">字段数组</param> public static DataTable DistinctSomeColumn(DataTable sourceTable, params string[] fieldName) { if (fieldName == null || fieldName.Length == 0) return sourceTable; return sourceTable.AsEnumerable().Distinct(new ColumnEquals(fieldName)).CopyToDataTable(); } public class ColumnEquals : IEqualityComparer<DataRow> { public ColumnEquals(string[] sArr) { _sArr = sArr; } private string[] _sArr; public bool Equals(DataRow x, DataRow y) { return !_sArr.Any(p => !x[p].Equals(y[p])); } public int GetHashCode(DataRow dr) { return dr.ToString().GetHashCode(); } }
相关文章推荐
- zoj 3890 Wumpus(zoj 2015年7月月赛)
- [VS调试]VS2010 VS2012调试时显示加载符号导致调试特别慢
- 利用SecureCRT进行文件的传输
- Android数据保存之文件保存
- iOS注释标记(参考javadoc)
- Visual Studio 2015速递(3)——ASP.NET 新特性
- Android中退出多个Activity的两个经典方法
- HDU-1799(组合递推公式)
- HDOJ 1711 Number Sequence(KMP简单模板题)
- Android横竖屏切换总结
- C#文件和文件文件夹按时间、名称排序-顺序与倒序
- 简单的Java打字游戏
- 不论我们爱或者不爱,我们为什么选择SAP?
- [Java]对字符串中的每个单词个数进行统计
- 使用Android Studio将开源库发布到Jcenter中央库
- margin和padding
- 野指针的危害究竟在哪里?
- PHP实现简单汉字验证码
- android工程不自动生成R文件的解决办法
- 线段树_HDU_2795