Hi Rockstar8
Check this sample now please take its reference.
HTML
<asp:GridView runat="server" ID="gvDetails" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
</Columns>
</asp:GridView>
Namespaces
C#
using System.Data;
using System.Linq;
VB.Net
Imports System.Data
Imports System.Linq
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Rows.Add("60");
dt.Rows.Add("30");
dt.Rows.Add("60");
dt.Rows.Add("43");
dt.Rows.Add("60");
var result = from row in dt.AsEnumerable()
group row by row["ID"] into gr
select new
{
Id = gr.FirstOrDefault()["ID"],
Count = gr.Count()
};
foreach (var item in result)
{
if (item.Count > 1)
{
DataRow[] dr = dt.Select("ID = " + item.Id);
foreach (DataRow row in dr)
{
dt.Rows.Remove(row);
}
dt.AcceptChanges();
}
}
this.gvDetails.DataSource = dt;
this.gvDetails.DataBind();
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.Page.IsPostBack Then
Dim dt As DataTable = New DataTable()
dt.Columns.Add("ID")
dt.Rows.Add("60")
dt.Rows.Add("30")
dt.Rows.Add("60")
dt.Rows.Add("43")
dt.Rows.Add("60")
Dim result = From row In dt.AsEnumerable()
Group row By Key = row("ID") Into Group
Select New With {
.Id = Group.FirstOrDefault()("ID"),
.Count = Group.Count()
}
For Each item In result
If item.Count > 1 Then
Dim dr As DataRow() = dt.Select("ID = " & item.Id)
For Each row As DataRow In dr
dt.Rows.Remove(row)
Next
dt.AcceptChanges()
End If
Next
Me.gvDetails.DataSource = dt
Me.gvDetails.DataBind()
End If
End Sub
Output
ID
30
43