Click here to Skip to main content
15,892,697 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I want to get mismatching rows in two datatables using linq in c#. I am able to get matching rows but not mismatching rows.
My Linq query is as below:
var query = from r1 in dt1.AsEnumerable()
                            join r2 in dt2.AsEnumerable()
                            on r1.Field<string>("ColumnName") equals  r2.Field<string>("ColumnName")
                            
                            select new
                            {
                                ColumnName = r1.Field<string>("ColumnName")

                                //score1 = r1.Field<int>("score"),
                                //score2 = r2.Field<int>("score")
                            };


What I have tried:

var query = from r1 in dt1.AsEnumerable()
                            join r2 in dt2.AsEnumerable()
                            on r1.Field<string>("ColumnName") equals  r2.Field<string>("ColumnName")
                            
                            select new
                            {
                                ColumnName = r1.Field<string>("ColumnName")

                                //score1 = r1.Field<int>("score"),
                                //score2 = r2.Field<int>("score")
                            };
Posted
Updated 2-Aug-21 21:33pm

Will get the records from dt1 which are not exists from dt2


var query = from r1 in dt1.AsEnumerable()
join r2 in dt2.AsEnumerable()
on new { A = r1.Field<string>("ColumnName")} equals
new { A = r2.Field<string>("ColumnName")}
into tempJoin
from leftJoin in tempJoin.DefaultIfEmpty()
where leftJoin == null
select new
{
ColumnName = r1.Field<string>("ColumnName")
};
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900