如何根据总分计算学生排名,如果总分重复两次,那么排名应该相同

How to Calculate students Rank based on the Total, If the Total amount repeated twice then the rank should be same

这是我尝试过的:

  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++;
    }

当我循环时它应该检查一些条件,有人可以帮助我吗?

您需要在循环时访问上一行的值。使用传统的 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;
   } 

}