【问题标题】:How can we filter datatable in c#?我们如何在 C# 中过滤数据表?
【发布时间】:2010-02-04 05:35:14
【问题描述】:
我对无法获得的数据表有特定要求。请帮我解决我的问题。我的查询如下
- 我的数据表是
C1 C2 C3 C4 C5
R1 1 2 3 4 25
R2 6 7 8 24 10
R3 11 22 13 14 15
R4 16 17 23 19 20
R5 21 7 18 9 5
- 在输出中,我希望每个列的最大值与行和列的位置(索引)如下
Value Row Column
21 R5 C1
22 R3 C2
23 R4 C3
24 R2 C4
25 R1 C5
任何人都可以帮助我,我应该如何取得结果?
【问题讨论】:
标签:
c#
asp.net
ado.net
datatable
【解决方案1】:
假设列名是 C1、C2、C3、C4、C5。
伪代码/算法。
int C1_MaxValue, C2_MaxValue, C3_MaxValue, C4_MaxValue, C5_MaxValue;
string C1_Row, C2_Row, C3_Row, C4_Row, C5_Row;
//Initialize row1 values as max values.
C1_MaxValue = DataTable.Rows[1]["C1"];
C2_MaxValue = DataTable.Rows[1]["C2"];
C3_MaxValue = DataTable.Rows[1]["C3"];
C4_MaxValue = DataTable.Rows[1]["C4"];
C5_MaxValue = DataTable.Rows[1]["C5"];
//Set R1 as row for max values.
C1_Row = C2_Row = C3_Row = C4_Row = C5_Row = DataTable.Rows[1][Row1];
For (i=2 to RowCount -1)
if(Datatable.Rows[i]["C1"] > C1_MaxValue)
{
C1_MaxValue = Datatable.Rows[i][C1];
C1_Row = Datatable.Rows[i][0];
}
//Do the above for all other columns.
End For
上述变量的最后应该包含最大值和对应的最大行数。