Simple group-by to see if there are duplicates. And rather than me write an elaborate code sample

using System.Data;
namespace WinFormsApp1;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
dataGridView1.DataSource = MockedDataTable();
}
private void GroupByIdButton_Click(object sender, EventArgs e)
{
dataGridView2.DataSource = GroupData((DataTable)(dataGridView1.DataSource));
}
public static DataTable GroupData(DataTable dt) =>
dt.AsEnumerable()
.GroupBy(row => row.Field<int>("id"))
.Select(g =>
g.OrderBy(r => r.Field<int>("id")).First())
.CopyToDataTable();
public static DataTable MockedDataTable()
{
var table = new DataTable();
table.Columns.Add(new DataColumn("Id", typeof(int)));
table.Columns.Add(new DataColumn("TaxRate", typeof(decimal)));
table.Columns.Add(new DataColumn("Value", typeof(decimal)));
table.Columns.Add(new DataColumn("TaxAmount", typeof(decimal)));
table.Columns.Add(new DataColumn("FinalValue", typeof(decimal), "Value + TaxAmount"));
table.Rows.Add(1, 5, 1000, 50);
table.Rows.Add(1, 5, 2000, 100);
table.Rows.Add(1, 10, 1000, 100);
table.Rows.Add(2, 10, 2000, 200);
table.Rows.Add(1, 15, 1000, 150);
table.Rows.Add(2, 15, 2000, 300);
return table;
}
}