This is a simple tip post . Here, I am explaining how to find the duplicate records in DataTable using LINQ.
In my previous posts, I explained Constructor Chainning in C#, Convert a Generic List to a Datatable, Get Property Names using Reflection in C#, Hard drive information using C#, Create Directory/Folder using C#, Check Internet Connection using C#, SQL Server Database BackUp using C# and some other articles related to C#, ASP.Net, jQuery, Java Script and SQL Server.
Query for finding duplicate records in DataTable using LINQ is very simple. For example, We have the following DataTable.
In my previous posts, I explained Constructor Chainning in C#, Convert a Generic List to a Datatable, Get Property Names using Reflection in C#, Hard drive information using C#, Create Directory/Folder using C#, Check Internet Connection using C#, SQL Server Database BackUp using C# and some other articles related to C#, ASP.Net, jQuery, Java Script and SQL Server.
Query for finding duplicate records in DataTable using LINQ is very simple. For example, We have the following DataTable.
Here you can see that "Name" and "Age" columns have some duplicate records.Now we will find these duplicate records using LINQ.
Find duplicate records based on single column
If you want to find the duplicate records from the above table based on single column i.e "Name" then you will have to write the following LINQ queryvar duplicates = dt.AsEnumerable() .GroupBy(r => r[0])//Using Column Index .Where(gr => gr.Count() > 1) .Select(g => g.Key); foreach (var d in duplicates) Console.WriteLine(d); Console.ReadKey(); OR var duplicates = dt.AsEnumerable() .GroupBy(r => r["Name"])//Using Column Name .Where(gr => gr.Count() > 1) .Select(g => g.Key); foreach (var d in duplicates) Console.WriteLine(d); Console.ReadKey();Output of the above query will be-
Find duplicate records based on multiple column
Following query will give you duplicate records in DataTable based on mulitiple columns.var duplicates = dt.AsEnumerable() .GroupBy(r => new { Name = r[0], Age = r[1] })//Using Column Index .Where(gr => gr.Count() > 1) .Select(g => g.Key); foreach (var d in duplicates) Console.WriteLine(d); Console.ReadKey(); OR var duplicates = dt.AsEnumerable() .GroupBy(r => new { Name = r[0], Age = r[1] })//Using Column Name .Where(gr => gr.Count() > 1) .Select(g => g.Key); foreach (var d in duplicates) Console.WriteLine(d); Console.ReadKey();Output of the above query will be-
I hope this will be helpful for you. I would like to have any feedback from you. Your valuable feedback, question, or comments about this article are always welcome.
No comments:
Post a Comment