Friday, August 19, 2011

Union of two dataTables and eliminate duplicates by using a customized IEqualityComparer


 public class StudentDataRowComparer : IEqualityComparer
    {

        #region IEqualityComparer Members

        public bool Equals(DataRow x, DataRow y)
        {
            return (x.Field("STUDENTID") == y.Field("STUDENTID"));
        }

        public int GetHashCode(DataRow obj)
        {
            return obj.ToString().GetHashCode();
        }

        #endregion
    }
 

How to call it
...
        //---Make an Union of both tables
        IEnumerable bothTables = dt1.AsEnumerable().Union(dt2.AsEnumerable());
                                DataTable dtUnion = bothTables.CopyToDataTable();

        //---Remove Duplicates
        var distinctStudents = dtUnion.AsEnumerable().Distinct( new StudentDataRowComparer());
                                DataTable dtFinal = distinctStudents.CopyToDataTable();

No comments:

Post a Comment