【发布时间】:2013-04-22 09:04:32
【问题描述】:
通过执行这样的存储过程,我有一个动态数据表:
A B C D
1 0 0 1
0 0 0 1
1 1 0 1
如何根据每列的总和降序排序?我想要它:
D A B C
1 1 0 0
1 0 0 0
1 1 1 0
我创建了一个列表来存储每列的总和:
List<Column> temptArray;
public class Column
{
public int columnIndex;
public int count;
}
我计算总和
private void calculateSum()
{
temptArray= new List<Column>();
for (int column = 0; column <= dataTable.Columns.Count -1; column++)
temptArray.Add(new Column{ columnIndex = column });
for (int row = 0; row <= dataTable.Rows.Count - 1; row++)
for (int column = 0; column <= dataTable.Columns.Count - 1; column++)
temptArray[column].count+= (int)dataTable.Rows[row].ItemArray.GetValue(column);
}
效果很好。
然后我对我的 temptArray 进行排序:
temptArray = temptArray.OrderByDescending(x => x.count).ToList();
现在应该订购我的 temptArray:DABC
如何像 temptArray 一样更改 DataTable 的顺序?
【问题讨论】:
标签: c# sorting datatable calculated-columns