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); >>> }>>
>> >>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); >> } >>} >>>>
var v = from x in dataTable.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")), > ProjectId = ((DataRow)g.First())["ProjectId"], > ProductId = ((DataRow)g.First())["ProductId"] > //Etc > };I've a feeling there's a better way but I guess this works....