try this
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dt.Columns.Add("code", typeof(int));
dt.Columns.Add("Tax", typeof(int));
dt.Columns.Add("Amount", typeof(decimal));
dr["code"] = 1;
dr["tax"] = 3;
dr["Amount"] = 0.73;
dt.Rows.Add(dr);
DataRow dr1 = dt.NewRow();
dr1["code"] = 2;
dr1["tax"] =4;
dr1["Amount"] =1.3;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["code"] = 3;
dr2["tax"] = 3;
dr2["Amount"] = 0.92;
dt.Rows.Add(dr2);
DataTable dt1 = new DataTable();
dt1.Columns.Add("Tax", typeof(int));
dt1.Columns.Add("TotalAmount", typeof(decimal));
var query = from row in dt.AsEnumerable()
group row by row.Field<int>("Tax") into grp
select new
{
tax = grp.Key,
sum = grp.Sum(r => r.Field<decimal>("Amount"))
};
foreach (var grp in query)
{
DataRow row = dt1.NewRow();
row["Tax"] = grp.tax;
row["TotalAmount"] = grp.sum;
dt1.Rows.Add(row);
}