Вы можете реализовать EqualityComparer следующим образом:
public class SerialNumberComparer : IEqualityComparer<DataRow>
{
public bool Equals(Datarow d1, DataRow d2)
{
return d1.Field<string>("SerialNumber") == d2.Field<string>("SerialNumber");
}
}
А затем используйте метод расширения LINQ Except
:
var aEnum = TableA.AsEnumerable();
var bEnum = TableB.AsEnumerable();
var comp = new SerialNumberComparer();
var ret = from q in bEnum.Except(aEnum, comp).Concat(aEnum.Except(bEnum, comp))
select new
{
SerialNumber = q["SerialNumber"],
UnitStatus = "HOT",
PartNumber = q["PartNumber"]
};