如何在程式碼中實現對DataTable的Group by

在某些情況下不能在sql中進行資料分組,需要在程式碼中進行分組求和,則如何在程式碼中實現對DataTable的Group by,

//建的Datatable DataTable dt1 = new DataTable(); dt1。Columns。AddRange(new DataColumn[] { new DataColumn(“A”), new DataColumn(“B”), new DataColumn(“C”)}); dt1。Rows。Add(new object[] { 1, 2, 20。1 }); dt1。Rows。Add(new object[] { 1, 3, 30。2 }); dt1。Rows。Add(new object[] { 1, 2, 30。9 }); dt1。Rows。Add(new object[] { 2, 4, 11 }); public DataTable GetGroupTable(DataTable p_Table) { DataTable _Table = p_Table。Clone(); IList _List = new List(); DataColumn _Column = new DataColumn(“SumC”, typeof(System。Decimal)); p_Table。Columns。Add(_Column); _Column。Expression = “convert(C,‘System。Decimal’)”; foreach (DataRow _Row in p_Table。Rows) { object _ValueA = _Row[“A”]; object _ValueB = _Row[“B”]; object _ValueC = p_Table。Compute(“sum(SumC)”, “A=‘” + _ValueA + “’ AND B=‘” + _ValueB + “’”); string _Key = _ValueA。ToString() + “,” + _ValueB。ToString(); if (_List。IndexOf(_Key) == -1) { _Table。Rows。Add(new object[] { _ValueA, _ValueB, _ValueC }); _List。Add(_Key); } } p_Table。Columns。Remove(“SumC”); return _Table; }

如何在程式碼中實現對DataTable的Group by

TAG: NewtableobjectAddDataTable