
GroupBy
private void LoadData()
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("key", typeof(string));
dataTable.Columns.Add("value", typeof(decimal));
dataTable.Rows.Add(new object[] { "123", 10 });
dataTable.Rows.Add(new object[] { "123", 50 });
dataTable.Rows.Add(new object[] { "234", 30 });
dataTable.Rows.Add(new object[] { "235", 30 });
dataTable.Rows.Add(new object[] { "236", 30 });
dataTable.Rows.Add(new object[] { "236", 30 });
dataTable.Rows.Add(new object[] { "237", 30 });
dataTable.Rows.Add(new object[] { "237", 30 });
dataTable.Rows.Add(new object[] { "237", 30 });
dataTable.Rows.Add(new object[] { "240", 30 });
dataTable.Rows.Add(new object[] { "240", 30 });
dataTable.Rows.Add(new object[] { "240", 30 });
var list = dataTable.Rows.Cast<DataRow>().GroupBy(d => d.Field<string>("key")).Select(g => new { key = g.Key, value = g.Sum(a=>a.Field<decimal>("value")) }).ToList();
gridControl1.DataSource = list;
nMax = list.Count();
pageCount = nMax / pageSize;
bindingSource1.DataSource = list;
bindingNavigator1.BindingSource = bindingSource1;
//gridControl1.DataSource = bindingSource1;
}