var v = from x in dataTable.AsEnumerable() > group x by x.Field<string>("ItemName") into g > select new > { > ItemName = g.Key, > Quantity = g.Sum(x => x.Field<int>("Quantity")) > }; > >//The above might be enough to work with? >//If not then this would get it into a revised DataTable - but there's probably something better.... > > List<DataRow> al = new List<DataRow>(); > > foreach (var x in v) > { > DataRow dr = dataTable.NewRow(); > dr["ItemName"] = x.ItemName; > dr["Quantity"] = x.Quantity; > al.Add(dr); > } > dataTable.Rows.Clear(); > foreach (DataRow dr in al) > { > dataTable.Rows.Add(dr); > }Hey Viv,
private void CombineDuplicateRows() { DataTable table = csCOSApp.ActiveProject.dsDataStore.Tables[0]; var v = from x in table.AsEnumerable() group x by x.Field<string>("Part_Number") into g select new { Part_Number = g.Key, Quantity = g.Sum(x => x.Field<int>("Quantity")), RowId = x.RowId, ProjectId = x.ProjectId, ProductId = x.ProductId, Product_Series = x.Product_Series, Product_Number = x.Product_Number, Product_Name = x.Product_Name, Product_Description = x.Product_Description, PartId = x.PartId, Part_Description = x.Part_Description, New_Part_Number = x.New_Part_Number, Keyword = x.Keyword, Category = x.Category, TribalNumber = x.TribalNumber, WhseQty1 = x.WhseQty1, WhseQty2 = x.WhseQty2, PartPrice = x.PartPrice, PartRatio = x.PartRatio }; List<DataRow> al = new List<DataRow>(); foreach (var x in v) { DataRow dr = table.NewRow(); dr["Part_Number"] = x.Part_Number; dr["Quantity"] = x.Quantity; al.Add(dr); } table.Rows.Clear(); foreach (DataRow dr in al) { table.Rows.Add(dr); } }but it doesn't know what 'x' is in the anonymous type. My Linq is not too good here. Could use some help.