这是我试过的:
DataTable dt = new DataTable();
dt.DefaultView.Sort = "ratio DESC";
dt.Columns.Add(new DataColumn("Rank", typeof(int)));
int count = 1;
foreach (DataRowView dr in dt.DefaultView)
{
dr["Rank"] = count++;
}
我在循环时应检查一些情况,任何人都可以帮助我吗?
答案 0 :(得分:0)
循环时需要访问上一行值。使用传统的for循环。小心第一个记录,因为它会有前一行。
for( int i = 0; i < dt.DefaultView.Rows.Count; i++ )
{
if( i > 0 )
{
// Compare with previous row using index
if( dt.DefaultView.Rows[i]["ratio"] == dt.DefaultView.Rows[i-1]["ratio"])
{
dt.DefaultView.Rows[i]["Rank"] = count;
}
else
{
dt.DefaultView.Rows[i]["Rank"] = count++;
}
}
else
{
dt.DefaultView.Rows[i]["Rank"] = count;
}
}