本文介绍一种按字段动态对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();
}
}
DataTable去重方法
本文介绍了一种基于指定字段对DataTable进行动态去重的方法,并保留所有列。通过使用自定义比较器,该方法能够高效地去除重复数据。
709

被折叠的 条评论
为什么被折叠?



